|
@@ -86,11 +86,31 @@ class PayService extends CrudService {
|
|
|
|
|
|
/**
|
|
|
* 支付订单回调函数
|
|
|
- * @param {Object} param 请求地址参数
|
|
|
- * @param param.order 订单id
|
|
|
+ * @param {Object} body 请求地址参数
|
|
|
+ * @param body.result 支付回调结果
|
|
|
*/
|
|
|
- async callBackPayOrder({ order }) {
|
|
|
- console.log(order);
|
|
|
+ async callBackPayOrder({ result }) {
|
|
|
+ const { out_trade_no, payer } = result;
|
|
|
+ // TODO: 没有需要报警,没有订单号就出问题了
|
|
|
+ if (!out_trade_no) {
|
|
|
+ console.error('没有支付订单号');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const arr = out_trade_no.split('-');
|
|
|
+ const noPart = _.last(arr);
|
|
|
+ const openid = _.get(payer, 'openid');
|
|
|
+ let orderData = await this.orderModel.findOne({ no: new RegExp(`${noPart}`), 'pay.openid': openid });
|
|
|
+ // TODO: 没找到订单也是有问题的,需要报警
|
|
|
+ if (!orderData) {
|
|
|
+ console.error('没有找到订单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ orderData = JSON.parse(JSON.stringify(orderData));
|
|
|
+ const payData = _.get(orderData, 'pay', {});
|
|
|
+ // 支付结果全都存起来
|
|
|
+ payData.result = result;
|
|
|
+ // 修改状态
|
|
|
+ await this.orderModel.updateOne({ no: new RegExp(`${noPart}`), 'pay.openid': openid }, { pay: payData, status: '1' });
|
|
|
}
|
|
|
|
|
|
/**
|