...
|
...
|
@@ -11,15 +11,15 @@ const serviceAPI = global.yoho.ServiceAPI; |
|
|
const utils = '../../../utils';
|
|
|
const productProcess = require(`${utils}/product-process`);
|
|
|
const _ = require('lodash');
|
|
|
const ApipayConfig = global.yoho.config.alipayConfig;
|
|
|
const md5 = require('md5');
|
|
|
|
|
|
// 资源位
|
|
|
const _getBanner = (param) => {
|
|
|
return serviceAPI.get('operations/api/v5/resource/get', {
|
|
|
content_code: param.contentCode,
|
|
|
platform: 'iphone'
|
|
|
}, {
|
|
|
code: 200
|
|
|
}).then((result) => {
|
|
|
}, { code: 200 }).then((result) => {
|
|
|
|
|
|
result = result.data;
|
|
|
|
...
|
...
|
@@ -36,9 +36,7 @@ const _getOthersBuy2 = (param) => { |
|
|
rec_pos: '100005',
|
|
|
limit: 2,
|
|
|
client_id: param.client_id
|
|
|
}, {
|
|
|
code: 200
|
|
|
}).then((result) => {
|
|
|
}, { code: 200 }).then((result) => {
|
|
|
|
|
|
if (result && result.data && result.data.product_list) {
|
|
|
return productProcess.processProductList(result.data.product_list);
|
...
|
...
|
@@ -53,9 +51,7 @@ const _getOtherDetail = (param) => { |
|
|
method: 'app.SpaceOrders.detail',
|
|
|
uid: param.uid,
|
|
|
order_code: param.orderCode
|
|
|
}, {
|
|
|
code: 200
|
|
|
}).then((result) => {
|
|
|
}, { code: 20 }).then((result) => {
|
|
|
|
|
|
return result;
|
|
|
|
...
|
...
|
@@ -74,7 +70,7 @@ const _getOthersBuy = (param) => { |
|
|
goodSkn = result[0].data.order_goods[0].product_skn;
|
|
|
}
|
|
|
|
|
|
return _getOthersBuy2(Object.assign(param, {skn: goodSkn}));
|
|
|
return _getOthersBuy2(Object.assign(param, { skn: goodSkn }));
|
|
|
|
|
|
}).then((result) => {
|
|
|
|
...
|
...
|
@@ -125,6 +121,69 @@ const getPayCod = (param) => { |
|
|
});
|
|
|
};
|
|
|
|
|
|
const _raw = (args) => {
|
|
|
let keys = Object.keys(args);
|
|
|
|
|
|
keys = keys.filter(k => {
|
|
|
let keyValueCheck =
|
|
|
k === 'sign' ||
|
|
|
k === 'sign_type' ||
|
|
|
k === 'code' ||
|
|
|
args[k] === '' ||
|
|
|
args[k] === 'undefined';
|
|
|
|
|
|
return !keyValueCheck;
|
|
|
}).sort();
|
|
|
|
|
|
return keys.map(k => {
|
|
|
return k + '=' + decodeURI(args[k]);
|
|
|
}).join('&');
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 验证返回结果的正确性
|
|
|
*/
|
|
|
const _checkResponse = (params) => {
|
|
|
if (!params.sign) {
|
|
|
return false;
|
|
|
}
|
|
|
let rawResult = _raw(params);
|
|
|
let sign = rawResult + ApipayConfig.alipayKey;
|
|
|
let md5Result = md5(sign);
|
|
|
|
|
|
return md5Result === params.sign;
|
|
|
};
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 支付宝支付结果校验
|
|
|
*/
|
|
|
const alipayResultVerify = (params) => {
|
|
|
let checkResult = {};
|
|
|
|
|
|
if (params.q) {
|
|
|
delete params.q;
|
|
|
}
|
|
|
|
|
|
if (!_checkResponse(params)) {
|
|
|
checkResult.payResult = false;
|
|
|
} else {
|
|
|
_.assign(checkResult, {
|
|
|
bankName: '',
|
|
|
orderCode: params.out_trade_no,
|
|
|
payResult: params.trade_status === 'TRADE_SUCCESS',
|
|
|
payTime: params.gmt_payment || '',
|
|
|
totalFee: params.total_fee,
|
|
|
resultMsg: params.notify_type,
|
|
|
payOrderCode: params.out_trade_no,
|
|
|
tradeNo: params.trade_no,
|
|
|
bankBillNo: ''
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return checkResult;
|
|
|
};
|
|
|
|
|
|
// 支付宝支付
|
|
|
const getPayAli = (param) => {
|
|
|
return api.all([
|
...
|
...
|
@@ -176,5 +235,6 @@ const getPayAli = (param) => { |
|
|
|
|
|
module.exports = {
|
|
|
getPayCod,
|
|
|
getPayAli
|
|
|
getPayAli,
|
|
|
alipayResultVerify
|
|
|
}; |
...
|
...
|
|