微信小程序支付应用程序,微信小程序支付开发详细解决方案
2019-07-31 10:45:17 来源:沈阳小程序开发 作者:沈阳软件开发
https://pay.weixin.qq.com/wiki/d . chapter=7_4& index=2当您阅读文档时,可以在此处看到业务流程。第一个坑,得到用户的openid,参数必须拼写在url连接上,否则会报告{'errcode': 40013,'errmsg':'无效appid,提示: [req_id: iil1ba0504ns86]'}错误
onLoad: function(){
Var=this
Wx.login({
成功:函数(res){
如果(res.code){
//发起网络请求
Wx.request({
网址:'https://api.weixin.qq.com/sns/jscode2session?appid=wxaacf22345345cfc7162fe3&secret=83ebd41c3e6f34a49b3a34578063434548ff3f71&js_code='+ res.code +'& grant_type=authorization_code',
方法:'POST',
成功:函数(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'));
//统一订单界面获取签名(签名)
Paysignjsapi:函数(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({
网址:'http://localhost: 8080/XinXingWXApi/wxXcxApi/Md5Encrypt.do',
方法:'GET',
数据: {
Appid: appid,
附上:附加,
正文:正文,
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,
键:键
},
//统一订购
成功:函数(res){
Var sign=res.data.strMd5
Var formData=''
formData +=''+ appid +''//appid
formData +=''+ attach +''//其他数据
formData +=''+ body +''//title
formData +=''+ mch_id +''//业务编号
formData +=''+ nonce_str +''//随机字符串,不超过32位。
formData +=''+ notify_url +''//异步接收微信付款结果通知的回调地址
formData +=''+ openid +''//UserId
formData +=''+ out_trade_no +''//业务订单号
formData +=''+ spbill_create_ip +''
formData +=''+ total_fee +''//金额
formData +=''+ trade_type +''//公共号码付款
formData +=''+ sign +''//签名
formData +=''
复制代码
返回解析xml的数据
//请求统一的订单界面
Wx.request({
网址:'https://api.mch.weixin.qq.com/pay/unifiedorder',
方法:'POST',
数据: formData,
成功:函数(数据){
Wx.request({
Url:'http://localhost: 8080/XinXingWXApi/wxXcxApi/xmlAnalyze.do?strXml='+ data.data,
方法:'POST',
成功:函数(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:函数(appid,timeStamp,nonce_str,pk,signType,key){
Var that=this;
Wx.request({
Url:'http://localhost: 8080/XinXingWXApi/wxXcxApi/getSignType.hn',
方法:'GET',
数据: {
appId: appid,
timeStamp: timeStamp,
nonceStr: nonce_str,
Pk: pk,
signType: signType,
键:键
},
成功:函数(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,
'成功':函数(res){
CONSOLE.LOG(RES);
CONSOLE.LOG( '成功');
'fail': function(res){
CONSOLE.LOG(RES);
CONSOLE.LOG( '故障');
},
'完成':函数(res){
//console.log(res);
CONSOLE.LOG( '完全');
}
});
}
})
}
< 汇海(www.hvihi.com)是国内知名的商城系统和商城网站建设提供商,其中汇海技术小程序系统提供小程序商城开发,小程序配送系统,微分配系统,商城系统,电子商务网站建设, 微信发行系统,小程序商城及其他多端商场和电子商务行业解决方案>
确认:这个文件和图像源网络编辑器的网站部分,如果有侵权及时通信删除。 汇海hvihi.com网站原创文章,请注明出处。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。
上一篇:
微信小程序字体设置组件和API思维导图
下一篇:很抱歉没有了