支付寶小程序的支付功能開發

步驟:

1、獲取用戶授權

2、獲取tradeNo

3、發起支付

// a.3 支付寶支付
  // #ifdef MP-ALIPAY
  _payByAli(payItemObj,paySource) {
    let that = this;
    
    // 下單開始start
    // 1 獲取用戶授權
    my.getAuthCode({
      scopes: 'auth_user',
      success: auth => {
        let authCode=auth.authCode;
        
        // 2 獲取tradeNo
        let params={
          uin:common.getGlobalUserInfo().id,
          payType:1,
          paySource:paySource,
          total:payItemObj.receivable*100,
          orderId:payItemObj.id,
          auth_code:authCode,
          grant_type:'authorization_code',
        };
        request.setRequest('/payment/order',params,true).then(res => {
          if (res.data.status === 1) {
            if(!res.data.data.tradeNo){
              request.setErrorMessage('沒有獲取到tradeNo');
              return;
            }
            let tradeNo=res.data.data.tradeNo;
            
            // 3 發起支付
            my.tradePay({
              tradeNO: tradeNo,
              success: (result) => {
                if (result.resultCode != 9000) {
                  request.setErrorMessage(result.memo);
                } else {
                  // 跳轉到訂單詳情頁面
                  my.alert({
                    content: '支付成功',
                    buttonText: '確定',
                    success: () => {
                      // 充值支付後跳轉到我的頁面
                      if(paySource==1){
                        my.navigateTo({
                          url:'/pages/consume/consume'
                        })
                      }else{
                        console.log("支付成功");
                      }
                    }
                  });
                  
                }
              },
              fail: (err) => {
                request.setErrorMessage('支付異常');
              }
            });
            
          } else if (res.data.status < 1) {
            //<=0:人工返回的錯誤信息
            request.setErrorMessage(res.data.msg);
          } else {
            request.setErrorMessage();
          }
        });
      
      },
      fail: err => {
        request.setErrorMessage('獲取用戶授權失敗');
      }
    });
    // 下單結束end
  },
  // #endif

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章