简单记录调用微信 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) {
// 调起收银台失败处理逻辑
}
});
}
});
}