uni-app 調用支付寶支付


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

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

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

 

先說重點  uni-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/

注 :創建后的應用是不能用於真實環境測試的,必須申請應用上線(審核比較容易)。並且簽約支付功能,簽約!簽約!!簽約!!!(沒簽約的可以用沙箱環境測試生成的訂單信息)

 

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

創建應用后

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

 

 

 從上面的圖 我們可以知道,我們只需要的兩個東西:1、APPID、2、支付寶公鑰(根據用戶上傳的公鑰自動生成)(網關是固定的,真實環境: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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM