uniapp微信小程序支付+nodejs

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签名这些已经封装好了,特别实用。

你可能感兴趣的:(nodejs微信小程序支付,nodejs,小程序)