您的位置:首页 > 移动开发 > 微信开发

uniapp微信小程序支付+nodejs

2020-07-07 21:57 465 查看

nodejs有一个好用的插件(tenpay)

#安装依赖
cnpm i -S tenpay

nodejs

const api = new tenpay({
appid: appid,//微信小程序中的appid
mchid: mch_id,//商户号的id
partnerKey: mch_key,//商户号的密钥
notify_url: notify_url,//支付需要返回的连接,如:你的域名是http://xxx.xxx.com
// spbill_create_ip: 'IP地址'//可写可不写要是不写就默认
});
router.route('/wxpayunifiedOrder').post(async function(req,res){
let {openid,total_fee} = req.body;//获取openid和价格
var order = {
out_trade_no: getWxPayOrdrID(),//这里就是生成一个订单号
body: '一只羊谈火锅',//付完钱要显示什么字
total_fee: String(total_fee*100),//这里是以分算的如果是1的话也就是1分钱,所以你传入0.01元乘100就可以换算单位
openid: openid
}
let result = await api.getPayParams(order);//这个方法就可以返回前端小程序支付接口所需要的所有数据。
res.send(result)
});//统一下单接口

uniapp(微信小程序)

uni.request({
url:http + '/wxpayunifiedOrder',//就是刚才nodejs的接口
method:'POST',
dataType: "JSON",
data:{openid,total_fee},//传入openid和价格
success: (res) => {
let resData = JSON.parse(res.data);
uni.requestPayment({
provider: 'wxpay',//uniapp调用微信小程序用的固定的
timeStamp: timeStamp,//根据刚才nodejs的函数传过来的
nonceStr: nonceStr,//根据刚才nodejs的函数传过来的
package: resData.package,//根据刚才nodejs的函数传过来的
signType: 'MD5',
paySign: paySign,//根据刚才nodejs的函数传过来的
success: function (res) {
console.log(JSON.stringify(res));
}
})
}
})

以上就全都完事了就可以实现支付功能了,不需要在配置其他的东西了,这个插件还有很多方法:点击进入文档

这个实现真的很简单,有不会的可以留言。不需要考虑md5签名这些已经封装好了,特别实用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: