Commit fc8f48e3 by 宋毅

修改回调

parent d9b29635
......@@ -39,9 +39,9 @@ class PaymentAPI extends WEBBase {
case "queryOrderStatus"://通联支付查询
opResult = await this.utilsOrderSve.queryOrderStatus(pobj, pobj.actionBody);
break;
case "getQrCode"://获取pc端支付二维码--不跟订单关联
opResult = await this.utilsOrderSve.getQrCode(pobj, pobj.actionBody);
break;
// case "getQrCode"://获取pc端支付二维码--不跟订单关联
// opResult = await this.utilsOrderSve.getQrCode(pobj, pobj.actionBody);
// break;
case "queryOrder"://通联支付查询
opResult = await this.utilsOrderSve.queryOrder(pobj, pobj.actionBody);
break;
......
......@@ -291,27 +291,83 @@ class UtilsOrderService extends AppServiceBase {
if (payStatus.data && payStatus.data.trxstatus == "0000") {
//TODO:处理支付成功的业务逻辑
// payStatus.data.client_ip = obj.client_ip || "";
// let attachList = [];
// if (payStatus.data.reqsn.indexOf("_") >= 0) {
// attachList = payStatus.data.reqsn.split("_");
// }
// else {
// attachList.push(payStatus.data.reqsn);
// }
// if (attachList.length != 2) {
// return { -120, msg: "reqsn参数错误,没有_标识" };
// }
// payStatus.data.out_trade_no = attachList[0];
// payStatus.data.company_id = attachList[1];
// return await this.utilstlbankSve.opBackNotify(payStatus.data, "页面回调");
return system.getResultFail(-100130,'订单已支付,请勿重复付款,100130')
// this.opPayStatusSuccess
// return system.getResultFail(-100130,'订单已支付,请勿重复付款,100130')
return system.getResultSuccess(payStatus.data,'订单已支付,请勿重复付款,100130');
}
else if (payStatus.data && payStatus.data.trxstatus == "3045") {
return system.getResultFail(-100170, "超时未支付,请刷新页面,100170");
}
return system.getResultFail(-100180, "请及时支付,100180");
}
async opPayStatusSuccess(parmas, client_ip) { //操作回调业务逻辑---查询支付状态为已支付时进行调用
try {
//日志记录
this.logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "回调处理订单参数:,method=opPayStatusSuccess",
op: "service/impl/utilsSve/utilsOrderSve.js/opPayStatusSuccess",
content: JSON.stringify(parmas),
clientIp: client_ip || ""
});
//获取充值业务锁
// await this.cacheManager["TlPayLocker"].init(receiptVoucher.sourceOrderNo);//---测试时放开
var locker = await this.cacheManager["TlPayLocker"].enter(receiptVoucher.sourceOrderNo);
if (!locker || locker != "1") {
this.logCtl.info({
appid: appInfo.uapp_id,
appkey: appInfo.uapp_key,
op: "service/impl/utilsSve/utilsOrderSve.js/opPayStatusSuccess",
content: "参数=" + JSON.stringify(parmas),
clientIp: parmas.client_ip || "",
optitle: "通联回调操作频繁---太频繁了,太频繁了"
});
return system.getResultFail(-200, "回调操作频繁---太频繁了,太频繁了");
}
if (parmas.trxcode == "VSP501") {
parmas.pay_type = "wx";
} else {
parmas.pay_type = "alipay";
}
parmas.appInfo = appInfo;
parmas.orderNo = parmas.out_trade_no;
//修改并返回订单支付状态,创建收款单
var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotify";
var opResult = await this.restPostUrl(parmas, url);
if (opResult.status == 0) {
opResult.data.appInfo = {
uapp_id: appInfo.uapp_id,
uapp_key: appInfo.uapp_key,
app_code: appInfo.app_code,
app_name: appInfo.app_name
};
opResult.data.userInfo = {
channel_userid: opResult.data.order_info.channelUserId,
channel_username: opResult.data.order_info.channelUserId,
channel_nickname: opResult.data.order_info.channelUserId
};
var pobj = {
appInfo: opResult.data.appInfo,
actionBody: opResult.data
}
// this.utilsPushSve.pushBusInfo(opResult.data, "pushOrderBusiness",0);
this.utilsPushSve.pushBusInfo(pobj, "pushOrder", 0);
}
opResult.data = null;
return opResult;
} catch (e) {
await this.cacheManager["TlPayLocker"].release(parmas.out_trade_no);
this.logCtl.error({
optitle: "回调处理订单---error异常",
op: "center-app/app/base/service/impl/utilsSve/utilstlbankSve.js/opBackNotify",
content: "参数=" + JSON.stringify(parmas) + ",error:" + e.stack,
clientIp: client_ip || ""
});
return system.getResultFail(-200, e.stack);
}
}
/**
* 获取pc端支付二维码--不跟订单关联
* @param {*} pobj
......
<a name="menu" href="/doc">返回主目录</a>
1. [获取pc端支付二维码--不跟订单关联](#getQrCode)
1. [pc端订单支付二维码生成](#getOrderQrCode)
1. [pc端查询订单是否支付成功](#getOrderQrCode)
1. [获取H5支付链接](#getH5PayUrl)
## **<a name="getQrCode"> 获取pc端支付二维码--不跟订单关联</a>**
[返回到目录](#menu)
##### URL
[/web/payment/paymentApi/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:getQrCode
``` javascript
{
"uapp_id": "1", //平台渠道ID
"order_num": "1", //支付单号
"total_fee": "1",   //支付金额  分
"body_desc": "1",    //产品名称
"opType": "1", // 支付方式  alipay阿里  wx微信
}
```
#### 返回结果
```javascript
{
"status": 0,  //0 成功 小于0  失败
"msg": "SUCCESS",
"data": {
"payinfo": "https://syb.allinpay.com/apiweb/h5unionpay/native?key=l6lfPuHDErJrTW%2FN7WxSlg4n", //二维码url
"reqsn": "dfghrtjjn_1",  ////商户订单号_appid
"chnltrxid": "112094120001042656", // 支付渠道交易单号,如支付宝,微信平台的交易单号
"trxid": "112094120001042656",  // 交易单号,平台的交易流水号
"trxstatus": "0000"   // 交易状态,0000:交易成功、1001:交易不存在、
},
"requestId": "058244807fff4ab388bbda79afc04b28"
  }
```
## **<a name="getOrderQrCode"> pc端订单支付二维码生成</a>**
[返回到目录](#menu)
##### URL
......@@ -71,6 +37,29 @@
}
```
## **<a name="queryOrderStatus"> pc端查询订单是否支付成功</a>**
[返回到目录](#menu)
##### URL
[/web/payment/paymentApi/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:queryOrderStatus
``` javascript
{
"orderNo": "TM22202008042050Pmex",//订单号
"opType": "wx"// 支付方式  alipay阿里  wx微信
}
```
#### 返回结果
``` javascript
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data": null,
"requestId": "07dedd4ffd4441dcac54c6d8a0f91653"
}
```
## **<a name="getH5PayUrl"> 获取H5支付链接</a>**
[返回到目录](#menu)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment