Commit 5146fdf9 by linboxuan

ordercallback

parent 9aa53296
...@@ -580,21 +580,27 @@ class UtilsOrderService extends AppServiceBase { ...@@ -580,21 +580,27 @@ class UtilsOrderService extends AppServiceBase {
return system.getResult(null, "trade_status状态有误,100473"); return system.getResult(null, "trade_status状态有误,100473");
} }
// 2020 0621 支付宝验签接口 // 2020 0621 支付宝验签接口
// var url = "https://yf-api.gongsibao.com/pay/v1/checkAliPaySign"; var url = "https://yf-api.gongsibao.com/pay/v1/checkAliPaySign";
// let params = { let params = {
// "app": "ukgc", //应用名称 固定 "app": "ukgc", //应用名称 固定
// "key": "a1519e2eab53dfb909e4c32a86b2ea2b", //应用 key 固定 "key": "a1519e2eab53dfb909e4c32a86b2ea2b", //应用 key 固定
// "tData" : params "tData" : parmas
// } }
// var sign = JSON.stringify(params); var sign = JSON.stringify(params);
// sign += "ab53dfb909e4c32a" sign += "ab53dfb909e4c32a"
// sign = md5(sign).toUpperCase() sign = md5(sign).toUpperCase()
// params.sign = sign params.sign = sign
// let res = await axios.post(url, params) let res = await axios.post(url, params)
// if (res.status != 0) { this.logCtl.info({
// res.msg = res.msg + ",100480"; optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "支付宝回调参数验签结果",
// return res; op: "service/impl/utilsSve/utilsOrderSve.js/aliPayNotify",
// } content: JSON.stringify(res),
clientIp: client_ip || ""
});
if (res.status != 0) {
res.msg = res.msg + ",100480";
return res;
}
// 模拟验签结果 // 模拟验签结果
var outTradeInfo = parmas.out_trade_no.split('-'); var outTradeInfo = parmas.out_trade_no.split('-');
// //
...@@ -666,24 +672,30 @@ class UtilsOrderService extends AppServiceBase { ...@@ -666,24 +672,30 @@ class UtilsOrderService extends AppServiceBase {
content: JSON.stringify(parmas), content: JSON.stringify(parmas),
clientIp: client_ip || "" clientIp: client_ip || ""
}); });
if (!parmas.trade_status) { if (!parmas.result_code) {
return system.getResult(null, "trade_status参数不能为空,100470"); return system.getResult(null, "result_code参数不能为空,100670");
} }
if (parmas.trade_status != "TRADE_FINISHED" && parmas.trade_status != "TRADE_SUCCESS") { if (parmas.result_code != "SUCCESS") {
return system.getResult(null, "trade_status状态有误,100473"); return system.getResult(null, "result_code状态有误,100673");
} }
// 2020 0621 支付宝验签接口 // 2020 0621 支付宝验签接口
// var url = "https://yf-api.gongsibao.com/pay/v1/checkAliPaySign"; // var url = "https://yf-api.gongsibao.com/pay/v1/checkWXPaySign";
// let params = { // let params = {
// "app": "ukgc", //应用名称 固定 // "app": "ukgc", //应用名称 固定
// "key": "a1519e2eab53dfb909e4c32a86b2ea2b", //应用 key 固定 // "key": "a1519e2eab53dfb909e4c32a86b2ea2b", //应用 key 固定
// "tData" : params // "tData" : parmas
// } // }
// var sign = JSON.stringify(params); // var sign = JSON.stringify(params);
// sign += "ab53dfb909e4c32a" // sign += "ab53dfb909e4c32a"
// sign = md5(sign).toUpperCase() // sign = md5(sign).toUpperCase()
// params.sign = sign // params.sign = sign
// let res = await axios.post(url, params) // let res = await axios.post(url, params)
// this.logCtl.info({
// optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "微信回调参数验签结果",
// op: "service/impl/utilsSve/utilsOrderSve.js/wxPayNotify",
// content: JSON.stringify(res),
// clientIp: client_ip || ""
// });
// if (res.status != 0) { // if (res.status != 0) {
// res.msg = res.msg + ",100480"; // res.msg = res.msg + ",100480";
// return res; // return res;
...@@ -712,10 +724,11 @@ class UtilsOrderService extends AppServiceBase { ...@@ -712,10 +724,11 @@ class UtilsOrderService extends AppServiceBase {
} }
parmas.appInfo = { appInfo: { uapp_id: opResult.data.uappId } }; parmas.appInfo = { appInfo: { uapp_id: opResult.data.uappId } };
parmas.orderNo = opResult.data.orderNo; parmas.orderNo = opResult.data.orderNo;
parmas.pay_type = "alipay"; parmas.pay_type = "wxpay";
//修改并返回订单支付状态,创建收款单 //修改并返回订单支付状态,创建收款单
// 这里修改了order_info的状态(status/paytime等) // 这里修改了order_info的状态(status/paytime等)
var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByAliDing"; // var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByAliDing";
var url = this.centerOrderUrl + "opaction/opPayOrder/receivePayCallBackNotifyByWX";
var opOrderResult = await this.restPostUrl(parmas, url); var opOrderResult = await this.restPostUrl(parmas, url);
if (opOrderResult.status != 0) { if (opOrderResult.status != 0) {
opOrderResult.data = null; opOrderResult.data = null;
......
...@@ -83,7 +83,8 @@ class UtilsUcommuneService extends AppServiceBase { ...@@ -83,7 +83,8 @@ class UtilsUcommuneService extends AppServiceBase {
var reqUrl = settings.centerOrderUrl() + "action/order/springBoard"; var reqUrl = settings.centerOrderUrl() + "action/order/springBoard";
var orderResult = await this.restPostUrl(pobj, reqUrl); var orderResult = await this.restPostUrl(pobj, reqUrl);
if(orderResult.status != 0) { if(orderResult.status != 0) {
return system.getResult(null, "Failed to get orderResult 100470"); // return system.getResult(null, "Failed to get orderResult or order has been paid 100470");
return system.getResult(null, orderResult);
} else { } else {
if(actionBody.payWay == 1) { // 支付宝 if(actionBody.payWay == 1) { // 支付宝
let creatPayRequrl = "https://yf-api.gongsibao.com/pay/v1/aliPay/getPrePayIdAliPay"; let creatPayRequrl = "https://yf-api.gongsibao.com/pay/v1/aliPay/getPrePayIdAliPay";
...@@ -196,38 +197,68 @@ class UtilsUcommuneService extends AppServiceBase { ...@@ -196,38 +197,68 @@ class UtilsUcommuneService extends AppServiceBase {
// console.log(alipayResponse); // console.log(alipayResponse);
} }
if(actionBody.payWay == 3) { // 微信 if(actionBody.payWay == 3) { // 微信
await this.cacheManager["TlPayLocker"].init(orderResult.data.receiptVoucher.sourceOrderNo);
let creatPayRequrl = "https://yf-api.gongsibao.com/pay/v1/createSign"; let creatPayRequrl = "https://yf-api.gongsibao.com/pay/v1/createSign";
let params = { let params = {
"app": "ukgc", "app": "ukgc",
"key": "a1519e2eab53dfb909e4c32a86b2ea2b", "key": "a1519e2eab53dfb909e4c32a86b2ea2b",
"payParam": [ "payParam": [
{ {
"name":"appid",
// 后期修改
// "value":"1"
"value":"wx6f3ebe44defe336a"
},
{
"name":"mch_id",
// "value":"1"
"value":"1232813602"
},
{
"name":"device_info",
"value":"1000"
},
{
"name":"body", "name":"body",
"value":orderResult.data.orderProduct.channelItemName "value":"商标"
// "value":orderResult.data.orderProduct.channelItemName
}, },
{ {
"name":"outTradeNo", "name":"nonce_str",
"value":orderResult.data.receiptVoucher.sourceOrderNo + "-" + pobj.appInfo.uapp_id.toString() + "-" + orderResult.data.orderProduct.id.toString() // "value":"ibuaiVcKdpRxkhJA"
"value":WxPayUtil.generateNonceString()
}, },
{ {
"name":"totalFee", "name":"openid",
"value":orderResult.data.receiptVoucher.totalSum "value":"o7kgSs_2cuJxyBoIEWMwRUPfobLg"
}, },
{ {
"name":"spbillCreateIp", "name":"notify_url",
"value":'192.168.2.210' "value":"http://"
// "value":this.centerChannelUrl + "orderNotify/wxPayNotify",
}, },
{ {
"name":"notifyUrl", "name":"out_trade_no",
"value":this.centerChannelUrl + "orderNotify/wxPayNotify" // "value": "OT37202006221758koyn-37-69"
"value":orderResult.data.receiptVoucher.sourceOrderNo + "-" + pobj.appInfo.uapp_id.toString() + "-" + orderResult.data.orderProduct.id.toString()
}, },
{ {
"name":"tradeType", "name":"sign_type",
"value":"JSAPI" "value":"MD5"
},
{
"name":"total_fee",
"value":"399"
// "value":orderResult.data.receiptVoucher.totalSum,
}, },
// {
// "name":"spbill_create_ip",
// // "value":'1'
// "Value": '192.168.2.210',
// },
{ {
"name": "nonceStr", "name":"trade_type",
"value": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS" "value":"JSAPI"
} }
], ],
"paymentType": "3" "paymentType": "3"
...@@ -246,6 +277,7 @@ class UtilsUcommuneService extends AppServiceBase { ...@@ -246,6 +277,7 @@ class UtilsUcommuneService extends AppServiceBase {
sign += "ab53dfb909e4c32a" sign += "ab53dfb909e4c32a"
sign = md5(sign).toUpperCase() sign = md5(sign).toUpperCase()
params.sign = sign params.sign = sign
console.log(params)
let res = await axios.post(creatPayRequrl, params) let res = await axios.post(creatPayRequrl, params)
if(res.status == 200 && res.data.code == 200) { if(res.status == 200 && res.data.code == 200) {
await this.cacheManager["TlPayLocker"].init(orderResult.data.receiptVoucher.sourceOrderNo); await this.cacheManager["TlPayLocker"].init(orderResult.data.receiptVoucher.sourceOrderNo);
...@@ -427,3 +459,15 @@ PayUtil = { ...@@ -427,3 +459,15 @@ PayUtil = {
module.exports = UtilsUcommuneService; module.exports = UtilsUcommuneService;
WxPayUtil = {
generateNonceString: function(length) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var maxPos = chars.length;
var noceStr = "";
for (var i = 0; i < (length || 32); i++) {
noceStr += chars.charAt(Math.floor(Math.random() * maxPos));
}
return noceStr;
}
}
\ No newline at end of file
...@@ -448,18 +448,28 @@ module.exports = function (app) { ...@@ -448,18 +448,28 @@ module.exports = function (app) {
// wx支付回调 // wx支付回调
app.post('/orderNotify/wxPayNotify', async function (req, res) { app.post('/orderNotify/wxPayNotify', async function (req, res) {
try{ try{
var client_ip = system.get_client_ip(req); var body = "";
var result = await utilsOrderSve.wxPayNotify(req.body);
logCtl.info({ req.on('data', function(data) {
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "记录微信支付回调处理结果", body += data;
op: "center-channel/orderNotify/wxPayNotify",
content: "支付回调处理结果:" + JSON.stringify(result),
clientIp: client_ip || ""
}); });
if (result.status != 0) { req.on('end', async function() {
return res.end("FAIL"); xml2js.parseString(body, { trim: true, explicitArray: false, explicitRoot: false }, async function(err, json) {
} var client_ip = system.get_client_ip(req);
return res.end("success"); var result = await utilsOrderSve.wxPayNotify(json);
logCtl.info({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "记录微信支付回调处理结果",
op: "center-channel/orderNotify/wxPayNotify",
content: "支付回调处理结果:" + JSON.stringify(result),
clientIp: client_ip || ""
});
if (result.status != 0) {
return res.end("FAIL");
}
return res.end("success");
})
})
} catch { } catch {
logCtl.error({ logCtl.error({
optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "微信回调处理异常", optitle: (new Date()).Format("yyyy-MM-dd hh:mm:ss") + "微信回调处理异常",
......
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