微信支付开发流程
记录下微信JSAPI支付的流程
1、判断是微信浏览器则直接请求微信授权的链接,需要传递给微信重定向回的页面,及订单id
// 微信浏览器直接调用 if (this.isWeixin) { let redirectUri = 'http://192.168.1.6/weChat' window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe0701b98700ac86e&redirect_uri='
+ encodeURI(redirectUri) + '&response_type=code&scope=snsapi_base&state=' + this.order.orderId + '#wechat_redirect' }
2、上一步获取授权之后,就会拿到code,及传递的订单id,会以query的形式拼在重定向的路由上,然后通过拿到的code和订单id去请求后台获取该支付对应的需要的参数,后台返回。
created () {
let _query = this.$route.query
if (Object.keys(_query).length > 0 && _query.code) {
wxChatPublicPayApi({
code: _query.code,
orderId: _query.state
}).then(res => {
this.params = res.data
if (typeof WeixinJSBridge === 'undefined') {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady, false)
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady)
document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady)
}
} else {
this.onBridgeReady()
}
})
}
}
3、拿到后台返回的参数之后,直接调用微信的api即可
onBridgeReady () {
let _this = this
WeixinJSBridge.invoke('getBrandWCPayRequest', _this.params, function (res) {
if (res.err_msg === 'get_brand_wcpay_request:ok') {
// 使用以上方式判断前端返回,微信团队郑重提示:
// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
_this.checkPayStatus()
} else {
_this.$message({
message: res.err_msg + '支付失败',
type: 'error'
})
_this.$router.push('/orderDetail/' + _this.$route.query.state)
}
})
},
详细参数可以查看下面微信支付官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
分类:
微信小程序/微信/阿里云相关开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律