加载中 ...
首页 > 新闻资讯 > 小程序 正文

微信小程序支付应用程序,微信小程序支付开发详细解决方案

2019-07-31 10:45:17 来源:沈阳小程序开发 作者:沈阳软件开发

9.png

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,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。