Authored by 郭成尧

payment-params-modified

... ... @@ -53,6 +53,14 @@ exports.orderEnsure = (req, res, next) => {
}
let orderPromise;
let params = {
uid: uid,
cartType: cartType,
orderInfo: orderInfo,
sku: sku,
skn: skn,
buyNumber: buyNumber,
};
if (req.query.cartType === 'bundle') {
if (!req.cookies._cartType) {
... ... @@ -60,9 +68,11 @@ exports.orderEnsure = (req, res, next) => {
}
let activityInfo = JSON.parse(req.cookies['activity-info']);
orderPromise = cartModel.cartPay(uid, cartType, orderInfo, null, sku, skn, buyNumber, activityInfo);
orderPromise = cartModel.cartPay(_.assign(params, {
activityInfo: activityInfo
}));
} else {
orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber);
orderPromise = cartModel.cartPay(params);
}
let allPromise = [
... ...
... ... @@ -22,52 +22,59 @@ const payModel = require('../models/pay');
* @param bool $isAjax 是否是异步请求
* @return array 接口返回的数据
*/
exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumber, activityInfo) => {
exports.cartPay = (params) => {
let result = {};
let skuList = [];
let isLimitGoods = skn && sku && buyNumber; // 存在sku, skn 和buyNumber时为限购商品
let isLimitGoods = params.skn && params.sku && params.buyNumber; // 存在sku, skn 和buyNumber时为限购商品
let orderComputeAPI = null;
if (isLimitGoods) {
skuList.push({
type: 'limitcode',
limitproductcode: limitProductCode,
buy_number: buyNumber,
skn,
sku
limitproductcode: params.limitProductCode,
buy_number: params.buyNumber,
skn: params.skn,
sku: params.sku
});
result.isLimit = true;
}
// cookie保存的数据
if (orderInfo && !_.isEmpty(orderInfo)) {
orderInfo.paymentType = orderInfo.paymentType ? orderInfo.paymentType : '';
if (params.orderInfo && !_.isEmpty(params.orderInfo)) {
params.orderInfo.paymentType = params.orderInfo.paymentType ? params.orderInfo.paymentType : '';
orderComputeAPI = shoppingAPI.orderComputeAPI({
uid: uid,
cart_type: cartType,
delivery_way: orderInfo.deliveryId,
payment_type: orderInfo.paymentType,
coupon_code: orderInfo.couponCode,
use_yoho_coin: orderInfo.yohoCoin,
uid: params.uid,
cart_type: params.cartType,
delivery_way: params.orderInfo.deliveryId,
payment_type: params.orderInfo.paymentType,
coupon_code: params.orderInfo.couponCode,
use_yoho_coin: params.orderInfo.yohoCoin,
product_sku_list: skuList,
activityInfo: activityInfo
activityInfo: params.activityInfo
});
}
// 区分套餐量贩和普通商品
let cartPayAPI;
let cartPayAPIParams = {
uid: params.uid,
cart_type: params.cartType,
product_sku_list: skuList
};
if (activityInfo) {
cartPayAPI = shoppingAPI.cartPayAPI(uid, cartType, 0, skuList, activityInfo);
if (params.activityInfo) {
cartPayAPI = shoppingAPI.cartPayAPI(_.assign(cartPayAPIParams, {
activityInfo: params.activityInfo
}));
} else {
cartPayAPI = shoppingAPI.cartPayAPI(uid, cartType, 0, skuList);
cartPayAPI = shoppingAPI.cartPayAPI(cartPayAPIParams);
}
return Promise.all([
cartPayAPI, // 0. 订单数据
orderComputeAPI,
shoppingAPI.getValidCouponCount(uid) // 2. 有效优惠券
shoppingAPI.getValidCouponCount(params.uid) // 2. 有效优惠券
]).then(res => {
let pay = res[0];
let orderCompute = _.get(res[1], 'data', {});
... ... @@ -89,10 +96,10 @@ exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumb
result = Object.assign(
result,
paymentProcess.tranformPayment(pay.data, orderInfo, cartType, skuList, orderCompute),
paymentProcess.tranformPayment(pay.data, params.orderInfo, params.cartType, skuList, orderCompute),
{
coupon: paymentProcess.coupon(validCouponCount, orderInfo, orderCompute)
coupon: paymentProcess.coupon(validCouponCount, params.orderInfo, orderCompute)
}
);
... ... @@ -348,12 +355,11 @@ exports.jitDetailData = (uid, cartType, skuList, orderCode, sessionKey,
return paymentProcess.transformJit(_.get(result, 'data.package_list', []));
});
} else {
return shoppingAPI.cartPayAPI(
uid,
cartType,
0,
skuList
).then(result => {
return shoppingAPI.cartPayAPI({
uid: uid,
cart_type: cartType,
product_sku_list: skuList
}).then(result => {
return paymentProcess.transformJit(_.get(result, 'data.shopping_cart_data.package_list', []));
});
}
... ...
... ... @@ -11,28 +11,28 @@ const api = global.yoho.API;
* @param string $skuList 购买限购商品时需要传递的参数
* @return see doc
*/
exports.cartPayAPI = (uid, cartType, isUseYohoCoin, skuList, activityInfo) => {
if (!activityInfo) {
activityInfo = null;
exports.cartPayAPI = (params) => {
if (!params.activityInfo) {
params.activityInfo = null;
}
let param = {
method: activityInfo ? 'app.Shopping.easyPayment' : 'app.Shopping.payment',
method: params.activityInfo ? 'app.Shopping.easyPayment' : 'app.Shopping.payment',
enable_red_envelopes: 0, // h5不返回红包
cart_type: cartType,
yoho_coin_mode: isUseYohoCoin,
uid: uid
cart_type: params.cart_type,
yoho_coin_mode: params.yoho_coin_mode,
uid: params.uid
};
// 购买限购商品时需要传递product_sku_list参数
if (!_.isEmpty(skuList)) {
param.product_sku_list = JSON.stringify(skuList);
if (!_.isEmpty(params.product_sku_list)) {
param.product_sku_list = JSON.stringify(params.product_sku_list);
}
// 购买套装和量贩商品时数据处理
if (activityInfo) {
param.activity_id = activityInfo.activity_id;
param.product_sku_list = JSON.stringify(activityInfo.product_sku_list);
if (params.activityInfo) {
param.activity_id = params.activityInfo.activity_id;
param.product_sku_list = JSON.stringify(params.activityInfo.product_sku_list);
}
return api.get('', param, {cache: false});
... ...