微信小程序支付
https://blog.csdn.net/qq_26383975/article/details/119997928(微信小程序支付大体流程)
1.打开某小程序,点击直接下单。
2.wx.login获取用户临时登录凭证code,发送到后端服务器换取openId。
3.在下单时,小程序需要将购买的商品Id,商品数量,以及用户的openId传送到服务器。
4.服务器在接收到商品Id、商品数量、openId后,生成服务期订单数据,同时经过一定的签名算法,向微信支付发送请求,获取预付单信息(prepay_id),
同时将获取的数据再次进行相应规则的签名,向小程序端响应必要的信息。
5.小程序端在获取对应的参数后,调用wx.requestPayment()发起微信支付,唤醒支付工作台,进行支付。
6.接下来的一些列操作都是由用户来操作的包括了微信支付密码,指纹等验证,确认支付之后执行鉴权调起支付。
7.鉴权调起支付:在微信后台进行鉴权,微信后台直接返回给前端支付的结果,前端收到返回数据后对支付结果进行展示。
8.推送支付结果:微信后台在给前端返回支付的结果后,也会向后台也返回一个支付结果,后台通过这个支付结果来更新订单的状态。
前端代码参考:
wechatPay() {
let dataId=this.data.id;
wx.login({
success(res) {
if (res.code) {
wx.setStorageSync('code', res.code);
//发送请求携带code得到支付的以下参数
/*
1.打开某小程序,点击直接下单。
2.wx.login获取用户临时登录凭证code,发送到后端服务器换取openId。
3.在下单时,小程序需要将购买的商品Id,商品数量,以及用户的openId传送到服务器。
4.服务器在接收到商品Id、商品数量、openId后,生成服务期订单数据,同时经过一定的签名算法,向微信支付发送请求,获取预付单信息(prepay_id),
同时将获取的数据再次进行相应规则的签名,向小程序端响应必要的信息。
5.小程序端在获取对应的参数后,调用wx.requestPayment()发起微信支付,唤醒支付工作台,进行支付。
6.接下来的一些列操作都是由用户来操作的包括了微信支付密码,指纹等验证,确认支付之后执行鉴权调起支付。
7.鉴权调起支付:在微信后台进行鉴权,微信后台直接返回给前端支付的结果,前端收到返回数据后对支付结果进行展示。
8.推送支付结果:微信后台在给前端返回支付的结果后,也会向后台也返回一个支付结果,后台通过这个支付结果来更新订单的状态。*/
requestApi.wechatPayProduct({productId}).then((res)=>{
wx.requestPayment({
timeStamp: res.timeStamp, // 时间戳
nonceStr: res.nonceStr, // 随机字符串
package: res.package, // 统一下单接口返回的 prepay_id 参数值
signType: res.signType, // 签名类型
paySign: res.paySign, // 签名
success() {
// 调用成功回调
wx.switchTab({
url: '../person/index',
})
},
fail() {
// 失败回调
},
complete() {
// 接口调用结束回调
}
})
})
}
}
})
}
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)