W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
發(fā)起支付。
相關(guān)問題請(qǐng)參見下文 小程序支付 / 資金授權(quán) FAQ 。
注意:此 API 暫僅支持企業(yè)支付寶賬戶使用。
my.tradePay({
// 調(diào)用統(tǒng)一收單交易創(chuàng)建接口(alipay.trade.create),獲得返回字段支付寶交易號(hào)trade_no
tradeNO: '201711152100110410533667792',
success: (res) => {
my.alert({
content: JSON.stringify(res),
});
},
fail: (res) => {
my.alert({
content: JSON.stringify(res),
});
}
});
my.tradePay({
// 調(diào)用資金凍結(jié)接口(alipay.fund.auth.order.app.freeze),獲取資金授權(quán)參數(shù)
orderStr: 'alipay_sdk=alipay-sdk-java-3.0.118.DEV&app_id=2018112803019836&biz_content=%7B%22amount%22%3A%220.02%22%2C%22extra_param%22%3A%22%7B\%22category\%22%3A\%22CHARGE_PILE_CAR\%22%7D%22%2C%22order_title%22%3A%22%D6%A7%B8%B6%B1%A6%D4%A4%CA%DA%C8%A8%22%2C%22out_order_no%22%3A%22ZMOutOrderNoAppFreeze2018052915543415090975%22%2C%22out_request_no%22%3A%22ZMOutReqNoAppFreeze20180529155434581875858%22%2C%22pay_timeout%22%3A%222d%22%2C%22payee_user_id%22%3A%222088202224929664%22%2C%22product_code%22%3A%22PRE_AUTH_ONLINE%22%7D&charset=GBK&format=json&method=alipay.fund.auth.order.app.freeze&sign=L4wk%2FNKcbJOo3n6Q5qbPzn0jUsvZlK4jr7iXnghudR0zeWJMmeNC71qIBSQfIz45n%2B5iTd0NQ5IK581xI2xCShTCiKAywnQcDmA%2Bjf%2BrRdKCDQCMLfCz%2BZ37C%2B6zxAX3e81%2F8Hr29lw4VPFfHkp9FmMwKw%2FGkNfV5ZlWoh7UtN8%3D&sign_type=RSA×tamp=2018-05-29+15%3A54%3A35&version=1.0',
success: (res) => {
my.alert({
content: JSON.stringify(res),
});
},
fail: (res) => {
my.alert({
content: JSON.stringify(res),
});
}
});
Object 類型,屬性如下:
屬性 | 類型 | 必填 | 描述 |
---|---|---|---|
tradeNO | String | 否(調(diào)用小程序支付 時(shí)必填) | 接入小程序支付時(shí)傳入此參數(shù)。此參數(shù)為支付寶交易號(hào),注意參數(shù)有大小寫區(qū)分。 |
orderStr | String | 否(調(diào)用資金授權(quán) 時(shí)必填) | 完整的支付參數(shù)拼接成的字符串,從服務(wù)端獲取。 |
success | Function | 否 | 調(diào)用成功的回調(diào)函數(shù)。 |
fail | Function | 否 | 調(diào)用失敗的回調(diào)函數(shù)。 |
complete | Function | 否 | 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)。 |
入?yún)?String 類型,屬性如下:
屬性 | 類型 | 描述 |
---|---|---|
resultCode | String | 支付結(jié)果碼,詳見下表。 |
結(jié)果碼 | 描述 | 解決方案 |
---|---|---|
4 | 無權(quán)限調(diào)用(N22104)。 | 個(gè)人小程序應(yīng)用沒有開放小程序支付能力。 |
9000 | 訂單處理成功。 | 不建議根據(jù) my.tradePay 接口同步返回判斷是否支付成功,9000 不能判定就是支付成功,請(qǐng)以異步通知(notify_url)返回的 trade_status(交易狀態(tài))為 TRADE_SUCCESS + alipay.trade.query 接口查詢訂單是否支付成功實(shí)際返回的支付狀態(tài)為準(zhǔn)。 |
8000 | 正在處理中。支付結(jié)果未知(有可能已經(jīng)支付成功)。 | 請(qǐng)調(diào)用 alipay.trade.query 接口查詢商戶訂單列表中訂單的支付狀態(tài),以查詢接口實(shí)際返回的支付狀態(tài)為準(zhǔn)。 |
4000 | 訂單處理失敗。 | tradeNO 調(diào)用小程序支付時(shí)必填,orderStr 調(diào)用資金授權(quán)時(shí)必填,二選一。根據(jù)具體接入開放能力選擇參數(shù)。小程序支付時(shí):檢查入?yún)⒆侄?nbsp;tradeNO 是否編寫正確,"NO"都是大寫。tradeNO 的入?yún)?shù)據(jù)是 alipay.trade.create 接口返回的 “trade_no”,不是 “out_trade_no”。資金授權(quán)時(shí):orderStr 必填。alipay.fund.auth.order.app.freeze 接口的參數(shù)有誤,導(dǎo)致通過 response.sdkExcute(request) 方法獲取到的orderStr 參數(shù)有問題,檢查入?yún)⒆侄魏蛿?shù)據(jù)是否符合接口要求,建議只傳必傳參數(shù)測(cè)試,避免其他參數(shù)干擾。 |
6001 | 用戶中途取消。 | 請(qǐng)用戶重新簽約 / 支付。檢查 tradeNO 的入?yún)⑹欠駷檎H雲(yún)?,參?shù)數(shù)據(jù)為 alipay.trade.create 接口返回的“trade_no”alipay.trade.create 接口在小程序場(chǎng)景中buyer_id 參數(shù)必填,且入?yún)⒌?nbsp;buyer_id(用戶 user_id,2088 開頭)必須和前端喚起支付的支付寶賬號(hào)一致。 |
6002 | 網(wǎng)絡(luò)連接出錯(cuò)。 | 檢查網(wǎng)絡(luò)連接后重試。 |
6004 | 處理結(jié)果未知(有可能已經(jīng)成功)。 | 請(qǐng)調(diào)用 alipay.trade.query 接口查詢商戶訂單列表中訂單的支付狀態(tài),以查詢接口實(shí)際返回的支付狀態(tài)為準(zhǔn)。 |
IDE 模擬器調(diào)用 my.tradePay 后會(huì)生成一個(gè)支付二維碼(有效時(shí)間10分鐘),開發(fā)者在支付寶客戶端掃碼支付,支付結(jié)果會(huì)同步 my.tradePay 回調(diào)。
可能原因:
解決方案:
\1. 請(qǐng)參考資金授權(quán)文檔 接入指引 > 第五步:調(diào)用接口 > 線上資金預(yù)授權(quán)凍結(jié),獲取用于小程序支付的 orderStr 參數(shù)。
\2. 將獲得的 orderStr 參數(shù)傳入 my.tradePay 中(設(shè)置為固定值),并在真機(jī)上進(jìn)行測(cè)試。
報(bào)錯(cuò)原因:
OutOrderNo 和 OutRequestNo 重復(fù)請(qǐng)求。(OutOrderNo 和 OutRequestNo)
解決方案:
\1. 確保 OutOrderNo 和 OutRequestNo 入?yún)⒃谏碳蚁到y(tǒng)中唯一 (只傳入OutOrderNo 或只傳入 OutRequestNo)。
\2. 檢查參數(shù)是否按照線上資金授權(quán)凍結(jié)要求設(shè)置,建議只傳必傳參數(shù)測(cè)試,避免其他參數(shù)干擾。
可能原因:
解決方案:
\1. 在服務(wù)端調(diào)用 ?alipay.trade.create (統(tǒng)一收單交易創(chuàng)建接口),獲得支付寶交易號(hào) tradeNO。
注意:
在小程序場(chǎng)景內(nèi) alipay.trade.create 接口中的 buyer_id 為必填項(xiàng),若未傳入,則調(diào)試報(bào)錯(cuò)。推薦使用開放平臺(tái)提供的 服務(wù)端 SDK ,并參考以下示例代碼(以 Java 代碼為例)進(jìn)行編寫。
//實(shí)例化客戶端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//實(shí)例化具體API對(duì)應(yīng)的request類,類名稱和接口名稱對(duì)應(yīng),當(dāng)前調(diào)用接口名稱:alipay.trade.create.
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
//SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù)。
request.setBizContent("{" +
"\"out_trade_no\":\"20171115010101001\"," +
"\"total_amount\":0.01," +
"\"subject\":\"Iphone616G\"," +
"\"buyer_id\":\"用戶pid\"" +
"}");
try {
//使用的是execute
AlipayTradeCreateResponse response = alipayClient.execute(request);
String trade_no = response.getTradeNo();//獲取返回的tradeNO。
} catch (AlipayApiException e) {
e.printStackTrace();
}
\2. 將獲得的 tradeNO 參數(shù)傳入 my.tradePay 中(設(shè)置為固定值),并在真機(jī)上進(jìn)行測(cè)試。
小程序 my.tradePay 接口不會(huì)限制創(chuàng)建 tradeNO 交易號(hào)參數(shù)的應(yīng)用 APPID,只要交易號(hào)合法,既可以 。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: