Heim > Artikel > Backend-Entwicklung > Die Verwendung der Zahlungsschnittstelle von Alipay in .net
In diesem Artikel wird hauptsächlich die Zahlungsschnittstelle von .net zu Alipay vorgestellt. Interessierte Freunde können darauf verweisen.
Die mobile Website von H5 ist mit der von Alipay verbunden Zahlungsschnittstelle. Für eine schnelle Entwicklung wird empfohlen, das von Alipay bereitgestellte SDK zu verwenden 🎜>Die Homepage muss einige Konstanten definieren
Ich habe die app_id, den Merchant_private_key und den alipay_public_key hier nicht aufgeführt. Die Methode zum Erhalten dieser Konstanten erfordert: Gehen Sie zur Alipay-Plattform um einige Vorgänge abzuschließen, um es zu erhalten
using Aop.Api; using Aop.Api.Request; using Aop.Api.Response; using Aop.Api.Util;
static string serverUrl = "https://openapi.alipaydev.com/gateway.do"; static string app_id = "**"; //开发者的应用ID static string format = "JSON"; static string charset = "utf-8"; static string sign_type = "RSA2"; //签名格式 static string version = "1.0"; string UID = "2088102169707816";//卖家支付宝账户号 //商户私钥 static string merchant_private_key = "***"; //支付宝公钥 static string alipay_public_key = "***";
Nach der Ausführung der Methode gibt der Käufer zum Bezahlen sein Alipay-Konto-Passwort ein. Wenn die Zahlung erfolgreich ist, fordert Alipay asynchron Ihre SetNotifyUrl-Adresse im Formular an des Beitrags
Die Adresse von SetNotifyUrl muss vom externen Netzwerk aus zugänglich sein, damit Alipay-Anfragen eingehen können
Käufer zahlen erfolgreich, Händler ändern Bestellstatus und Datenbankvorgänge, alles wird in asynchronen Anfragen ausgeführt
public string H5RequestPayWay(OrderPO order) { IAopClient client = new DefaultAopClient(serverUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, charset, false); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); string address= "http://m." + PathLogic1.RootDomain; request.SetReturnUrl(address+ "/WebPay/AlipayPayResult");//同步请求 request.SetNotifyUrl(address + "/WebPay/AsyncPay");//异步请求 var lstDetail = Context.Data.OrderDetail.Where(x => x.OrderNo == order.OrderNo).ToSelectList(x=>new { x.SkuName}); StringBuilder sb = new StringBuilder(); for (int i = 0; i < lstDetail.Count(); i++) { sb.Append(lstDetail[i].SkuName + ","); } request.BizContent = "{" + "\"body\":\""+sb.ToString().Substring(0,sb.Length-1)+"\"," + "\"subject\":\"袋鼠巴巴商品支付\"," + "\"out_trade_no\":\""+order.OrderNo+"\"," + "\"timeout_express\":\"90m\"," + "\"total_amount\":"+(order.TotalAmount.Value+order.TotalFreight.Value)+"," + "\"product_code\":\"QUICK_WAP_PAY\"" + " }"; AlipayTradeWapPayResponse response = client.pageExecute(request); return response.Body; }Synchronisierungsanfrage
public ActionResult AlipayPayResult() { ViewBag.result = "success"; return View("PayResult"); }
/// <summary> /// 验证通知数据的正确性 /// </summary> /// <param name="out_trade_no"></param> /// <param name="total_amount"></param> /// <param name="seller_id"></param> /// <returns></returns> private SortedDictionary<string, string> GetRequestPost() { int i = 0; SortedDictionary<string, string> sArray = new SortedDictionary<string, string>(); NameValueCollection coll; //Load Form variables into NameValueCollection variable. coll = Request.Form; // Get names of all forms into a string array. String[] requestItem = coll.AllKeys; for (i = 0; i < requestItem.Length; i++) { sArray.Add(requestItem[i], Request.Form[requestItem[i]]); } return sArray; }
Das obige ist der detaillierte Inhalt vonDie Verwendung der Zahlungsschnittstelle von Alipay in .net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!