yarn add tenpay
const express = require('express');
const router = express.Router();
const models = require('../models');
const tenpay = require('tenpay');
// 微信支付接口,前端需传订单号
router.post('/pay', async function (req, res, next) {
// 前端传递过来,需支付的订单id
const order_id = req.body.order_id
// 根据订单号去查当前订单
const order = await models.Order.findByPk(order_id)
const config = {
appid: '微信支付appid',
mchid: '微信商户号',
partnerKey: '微信支付安全密钥',
notify_url: '支付回调网址',
};
// 调用 tenpay,生成微信 JSSDK 支付参数
const api = new tenpay(config, true);
const result = await api.getPayParams({
out_trade_no: order.out_trade_no, // 商户内部订单号
body: '长乐小卖部', //商品简单描述
total_fee: order.total * 100, // 因为是分单位,所以需要 * 100
openid: req.decoded.user.openid // 付款用户的 openid
});
// 返回给前端
res.json(result)
})
pay() {
wx.request({
url: `http://localhost:3000/orders/pay`,
header: {
'token': '你的接口认证 token'
},
method: 'POST',
data: {
// 需要支付的订单id
order_id: 28
},
success: res => {
console.log('支付需要的参数:', res)
wx.requestPayment({
'timeStamp': res.data.timeStamp,
'nonceStr': res.data.nonceStr,
'package': res.data.package,
'signType': res.data.signType,
'paySign': res.data.paySign,
// 支付成功
'success': function(res){} {
},
// 支付失败
'fail': function(res){} {
//是否用户主动取消?
if (res.errMsg == "requestPayment:fail cancel") {
} else {
// 支付程序故障
}
},
// 无论成功或失败
'complete': function(res){} {
}
})
}
})
}
已添加到喜欢了