微信小程序中支付功能开发错误怎么解决
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本文小编为大家详细介绍"微信小程序中支付功能开发错误怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序中支付功能开发错误怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年11月13日微信小程序中支付功能开发错误怎么解决
本文小编为大家详细介绍"微信小程序中支付功能开发错误怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序中支付功能开发错误怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
业务流程在这里大家看文档的时候可以看到。第一个坑,获取用户的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安全错误
数据库的锁怎样保障安全
曾洪阿里巴巴网络技术顾问
网络安全大使自我介绍
怎么租用服务器玩游戏
服务器边界防护设备
将域名转换为ip地址的服务器是
可以控制软件开发周期
sql 数据库表名
lt软件开发 女孩子多吗
深圳玩咖网络技术有限公司
比较实用的网络技术
vf 数据库编程实例
怀旧服怎么看服务器号
软件开发合同谁出
辽宁软件开发专业
网络安全概念车 功能
云服务器哪个好
宿舍的公用网络安全吗
我的世界搜索不到别人的服务器
pc软件开发需要上线吗
台服如何修改服务器名
河北数字技术和网络安全
校园网络安全答题活动总结
cicode与数据库
利用数据库管控企业利润
数据备份管理服务器
广东应急网络安全平台
开封手机软件开发
数据库2012备份
网络安全厂家招聘
服务器防火墙和域控