...
|
...
|
@@ -18,8 +18,7 @@ const Tenpay = { |
|
|
pay(user, order, param, protocol) {
|
|
|
let payParams = JSON.parse(param.payParams);
|
|
|
let extraParam = JSON.stringify({
|
|
|
sign_id_ext: user.uid,
|
|
|
defaultbank: param.bankCode || ''
|
|
|
sign_id_ext: user.uid
|
|
|
});
|
|
|
let params = {
|
|
|
partner: payParams.merchant_id, // 商户号
|
...
|
...
|
@@ -29,7 +28,7 @@ const Tenpay = { |
|
|
notify_url: protocol + ':' + helpers.urlFormat('/shopping/pay/notify/tenpay'), // 异步通知地址
|
|
|
body: '有货订单号:' + order.order_code, // 商品描述
|
|
|
bank_type: 'DEFAULT', // 银行类型,默认为财付通
|
|
|
spbill_create_ip: '127.0.0.1', // 客户端IP
|
|
|
spbill_create_ip: user.IP, // 客户端IP
|
|
|
fee_type: '1', // 币种
|
|
|
subject: '有货订单号:' + order.order_code, // 商品名称,(中介交易时必填)
|
|
|
sign_type: 'MD5',
|
...
|
...
|
@@ -41,7 +40,7 @@ const Tenpay = { |
|
|
attach: extraParam // 附加数据,原样返回
|
|
|
};
|
|
|
|
|
|
let signStr = md5(sign.raw(params) + '&key=' + payParams.merchant_key).toLowerCase();
|
|
|
let signStr = md5(sign.raw(params) + '&key=' + payParams.merchant_key).toLocaleUpperCase();
|
|
|
let body = sign.rawUncode(params) + '&sign=' + signStr;
|
|
|
|
|
|
return {
|
...
|
...
|
@@ -52,7 +51,7 @@ const Tenpay = { |
|
|
};
|
|
|
},
|
|
|
notify(data, param) {
|
|
|
let payParams = JSON.parse(param.payParams);
|
|
|
let payParams = JSON.parse(param.payParams || '{}');
|
|
|
let orderCode = parseInt(data.out_trade_no, 10);
|
|
|
|
|
|
logger.info(`Alipay notify, params = ${JSON.stringify(data)}`);
|
...
|
...
|
@@ -64,23 +63,26 @@ const Tenpay = { |
|
|
return {
|
|
|
bankName: '',
|
|
|
orderCode: orderCode,
|
|
|
payResult: data.trade_status === 'TRADE_SUCCESS' ? 200 : 400,
|
|
|
totalFee: data.total_fee,
|
|
|
resultMsg: data.notify_type,
|
|
|
payOrderCode: orderCode,
|
|
|
tradeNo: data.trade_no,
|
|
|
payResult: 200,
|
|
|
totalFee: data.total_fee * 0.01,
|
|
|
tradeNo: '',
|
|
|
bankBillNo: ''
|
|
|
};
|
|
|
},
|
|
|
|
|
|
checkNotify(data, payParams) {
|
|
|
let signValue = data.sign;
|
|
|
let signValue;
|
|
|
|
|
|
if (data && parseInt(data.trade_state, 10) !== 0) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
signValue = data.sign;
|
|
|
delete data.sign;
|
|
|
delete data.sign_type;
|
|
|
delete data.code;
|
|
|
|
|
|
let signStr = md5(sign.raw(data) + payParams.merchant_key);
|
|
|
let signStr = md5(sign.raw(data) + payParams.merchant_key).toLocaleUpperCase();
|
|
|
|
|
|
console.log(signValue, signStr, ' ==2222222222= ');
|
|
|
|
|
|
return signValue === signStr;
|
|
|
}
|
...
|
...
|
|