簡單記錄調用微信 H5 支付,前端思路
tt.request({
url:'后台服務器', // 目標服務器url
method: 'POST', // POST 請求
header: {
"content-type": "application/x-www-form-urlencoded"
},
data: {
money: 1, // 支付所需要的錢
app_name: '抖音', // 需要跳轉的 app 名稱
package_name: 'com.tencent.tmgp.sgame', // 包名(不是很理解包名是什么意思)
session_3rd: '', // 每個用戶唯一 openid
type: 'Android' // 手機型號 IOS 不支持 虛擬支付。
},
success ( r ) {
tt.pay({
orderInfo: r.data.data, // 訂單所需要的值,后端調用微信下單接口返回的值。
_debug: 1, // 僅限調試用,上線前去掉該參數。_debug=1 時,微信支付期間可以看到中間報錯信息,方便調試
service: 1,
/*固定值:1 (拉起小程序收銀台)開發者如果不希望使用頭條小程序收銀台,service 設置為 3/4 時,可以直接拉起微信/支付寶進行支付:service=3: 微信 API 支付,不拉起小程序收銀台;service=4: 支付寶 API 支付,不拉起小程序收銀台 */
getOrderStatus(res) {
let { out_order_no } = res; // 訂單號
return new Promise(function (resolve, reject) {
// 商戶前端根據 out_order_no 請求商戶后端查詢微信支付訂單狀態
tt.request({
url: "后端通過查詢微信訂單返回的接口",
method: 'POST',
header: {
"content-type": "application/x-www-form-urlencoded"
},
data: {
out_order_no: out_order_no // 必傳參數 訂單號
},
success(res) {
// 商戶后端查詢的微信支付狀態,通知收銀台支付結果
if (res.data.trade_state == "SUCCESS") {
// 查詢微信訂單返回一個 trade_state 的屬性值 當它返回為 SUCCESS 時,就為成功,Promise 中 resolve中返回 code:0 方便下面拿到。
resolve({ code: 0 })
}
},
fail(err) {
reject(err);
}
});
});
},
// 成功吊起支付頁面
success(res) {
if (res.code == 0) {
// 從微信查詢訂單中拿到 code == 0 字節跳動會判斷支付成功,會改變收銀台狀態為完成。邏輯可以再這里處理。
}
},
// 調起收銀台失敗處理邏輯
fail(res) {
// 調起收銀台失敗處理邏輯
}
});
}
});
}
