uni-app 調用支付寶支付

本文講解  uni-app如何調用支付寶進行支付,服務端爲 .net編寫。php

客戶端:uni-app 編寫  一、根據服務端生成的訂單信息發起支付。json

服務端:.net 編寫 一、生成訂單信息。二、接收支付寶異步反饋支付信息。api

 

先說重點  uni-app 不支持支付寶沙箱測試!不支持支付寶沙箱測試!!不支持支付寶沙箱測試!!!(重要的事情說三遍,爲此我浪費了半天。上線應用沒簽約支付又浪費了半天)。app

客戶端很簡單 一句代碼搞定:  參考官方文檔:https://uniapp.dcloud.io/api/plugins/payment?id=requestpayment (5+App 支付)異步

 

AliPay: function() { uni.requestPayment({ provider: 'alipay', orderInfo:'服務端生成的支付訂單信息', success: function(res) { console.log('success:' + JSON.stringify(res)); }, fail: function(err) { console.log('fail:' + JSON.stringify(err)); } }); },
View Code

 

服務端編寫代碼以前,須要去支付寶進行app應用建立。詳細流程:https://docs.open.alipay.com/204/105297/ide

注 :建立後的應用是不能用於真實環境測試的,必須申請應用上線(審覈比較容易)。而且簽約支付功能,簽約!簽約!!簽約!!!(沒簽約的能夠用沙箱環境測試生成的訂單信息)工具

 

三個密鑰: 商戶應用私鑰(本身保存生成訂單用)、商戶應用公鑰(上傳到支付寶應用,用來生成支付寶公鑰)、支付寶公鑰(根據商戶應用公鑰自動生成,生成訂單用到)。測試

建立應用後spa

  一、設置密鑰 工具下載地址:https://docs.open.alipay.com/291/105971  私鑰保存到本地,公鑰填寫到支付寶應用,獲得支付寶公鑰。.net

 

 

 從上面的圖 咱們能夠知道,咱們只須要的兩個東西:一、APPID、二、支付寶公鑰(根據用戶上傳的公鑰自動生成)(網關是固定的,真實環境:https://openapi.alipay.com/gateway.do。沙箱環境:https://openapi.alipaydev.com/gateway.do。 有區別!)。

作完上面,咱們就能夠下載對應的SDK了。下載地址:https://docs.open.alipay.com/54/106370/。 上面有詳細的使用說明。多看幾遍。

我用的是 .net,我新建了一個WebService項目,把上面的SDK 應用到項目就行了。

 代碼:

private string RSA2 = "RSA2"; private string CHARSET = "utf-8"; private string URL = "https://openapi.alipaydev.com/gateway.do"; // 這個是沙箱環境的網關,真實環境須要改一下 private string APPID = ""; private string APP_PRIVATE_KEY = "私鑰字符串拷過來"; private string ALIPAY_PUBLIC_KEY = "z支付寶公鑰拷貝過來"; [WebMethod(Description = "獲取訂單信息")] public string getAliPayOrderInfo() { IAopClient client = new DefaultAopClient(URL, APPID, APP_PRIVATE_KEY, "json", "1.0", RSA2, ALIPAY_PUBLIC_KEY, CHARSET, false); AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Body = "我是測試數據"; model.Subject = "App支付測試DoNet"; model.TotalAmount = "0.01"; model.ProductCode = "QUICK_MSECURITY_PAY"; model.OutTradeNo = "20170216555555555555555501"; model.TimeoutExpress = "30m"; AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.SetBizModel(model); AlipayTradeAppPayResponse response = client.SdkExecute(request); return response.Body; }
View Code

運行結果以下圖,直接拷貝到客戶端的代碼裏就能夠了。

 正式上線的App 而且已經簽約了支付功能,能夠運行。若是是沙箱環境,則會報錯  「[payment支付寶:62009]未知錯誤」。

 

支付寶提供了調試工具用來驗證上面的訂單信息。工具下載地址:https://openclub.alipay.com/read.php?tid=7695

選擇沙箱環境,把上面生成的訂單信息考本到文本框,點擊「點我去支付」,能夠喚起支付頁面而不報錯,就說明在服務端的請求參數沒有問題。

相關文章
相關標籤/搜索