微信小程序中支付功能开发错误怎么解决
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本文小编为大家详细介绍"微信小程序中支付功能开发错误怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序中支付功能开发错误怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月21日微信小程序中支付功能开发错误怎么解决
本文小编为大家详细介绍"微信小程序中支付功能开发错误怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序中支付功能开发错误怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
业务流程在这里大家看文档的时候可以看到。第一个坑,获取用户的openid,参数一定要拼在url连接上,否则会报{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: iil1ba0504ns86 ]"}错误
onLoad: function () { var that = this wx.login({ success: function (res) { if (res.code) { //发起网络请求 wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session?appid=wxaacf22345345cfc7162fe3&secret=83ebd41c3e6f34a49b3a34578063434548ff3f71&js_code=' + res.code + '&grant_type=authorization_code', method: "POST", success: function (res) { that.setData({ openid: res.data.openid }) } }) } else { console.log('获取用户登录态失败!' + res.errMsg) } } }); }
第二个坑,支付统一下单接口,签名这个坑是比较多人遇到问题的这个是MD5加密经常和签名工具里面的加密签名不一样
签名加密工具地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
签名加密的时候要转成utf-8,加密我用自己的接口进行加密的 digest.update(data.getBytes("utf-8"));
// 统一下单接口获取sign(签名) paysignjsapi: function (appid, attach, body, mch_id, nonce_str, notify_url, openid, out_trade_no, spbill_create_ip, total_fee, trade_type, key) { var self = this; //加密签名 wx.request({ url: 'http://localhost:8080/XinXingWXApi/wxXcxApi/Md5Encrypt.do', method: 'GET', data: { appid: appid, attach: attach, body: body, mch_id: mch_id, nonce_str: nonce_str, notify_url: notify_url, openid: openid, out_trade_no: out_trade_no, spbill_create_ip: spbill_create_ip, total_fee: total_fee, trade_type: trade_type, key: key }, //统一下单 success: function (res) { var sign = res.data.strMd5 var formData = "" formData += " "" + appid + " " //appid formData += "" + attach + " " //附加数据 formData += "" + body + "" //标题 formData += "" + mch_id + " " //商户号 formData += "" + nonce_str + " " //随机字符串,不长于32位。 formData += "" + notify_url + " " //异步接收微信支付结果通知的回调地址 formData += "" + openid + " " //用户Id formData += "" + out_trade_no + " " //商户订单号 formData += "" + spbill_create_ip + " " formData += "" + total_fee + " " //金额 formData += "" + trade_type + " " //公共号支付 formData += "" + sign + " "//签名 formData += "
返回数据解析xml
//请求统一下单接口 wx.request({ url: "https://api.mch.weixin.qq.com/pay/unifiedorder", method: 'POST', data: formData, success: function (data) { wx.request({ url: "http://localhost:8080/XinXingWXApi/wxXcxApi/xmlAnalyze.do?strXml=" + data.data, method: 'POST', success: function (res) { var pk = 'prepay_id=' + res.data.prepayId; var timeStamp = self.createTimeStamp(); //获取支付签名,并支付 self.getsignType(appid, timeStamp, nonce_str, pk, "MD5", key); } }) } }) } }); }
第三就是调用支付了,这里也有几个小坑,第一就是appId很多写成appid就不行了,第二个就是preoatid 的参数格式要写对prepay_id=wx2017011711060194dccf725232155886323 第三个就是调用支付的时候报支付签名错误,也需要到签名接口查看签名是否一致,查看参数是否是对的,调用微信支付的时候必须加上appId
getsignType: function (appid, timeStamp, nonce_str, pk, signType, key) { var that = this; wx.request({ url: "http://localhost:8080/XinXingWXApi/wxXcxApi/getSignType.hn", method: 'GET', data: { appId: appid, timeStamp: timeStamp, nonceStr: nonce_str, pk: pk, signType: signType, key: key }, success: function (res) { console.log(res.data.paySign) var paySign = res.data.paySign //调用微信支付 wx.requestPayment({ 'appId': appid, 'timeStamp': timeStamp, 'nonceStr': nonce_str, 'package': pk, 'signType': 'MD5', 'paySign': paySign, 'success': function (res) { console.log(res); console.log('success'); }, 'fail': function (res) { console.log(res); console.log('fail'); }, 'complete': function (res) { // console.log(res); console.log('complete'); } }); } }) }
读到这里,这篇"微信小程序中支付功能开发错误怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
支付
加密
错误
接口
就是
时候
统一
功能
程序
开发
参数
文章
用户
内容
商户
地址
工具
数据
不行
妥当
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浙丽保服务器失败
网络安全产品平台
邓州直播软件开发公司
网络安全写作文100字
常用内存数据库
丰台区软件开发
刺激战场在哪个服务器上下载
浪潮服务器默认管理密码
教育网络安全
营口互助盘软件开发公司
服务器扩容总结
网络安全法公需
金蝶卡片对应的数据库
国际服刺激战场是哪个服务器
小米测试开发和软件开发笔试
数据库启动后又自动关闭了
超级计算机和服务器
网络安全证书如何申请
服务器地址怎么恢复
杭州微聚软件开发
8cpu服务器
从网络安全的角度考虑网络产品
上海网络安全保卫总队电话
数据库网页查询系统源码
互联网科技怎么起名
舒城找找网络技术公司怎么样
delphi 时间服务器
软件开发好难想放弃
db2数据库操作
数据库怎么判断是否创建