Authored by 郭成尧

order-payment

... ... @@ -42,10 +42,16 @@ exports.orderEnsure = (req, res, next) => {
headerData.backUrl = req.get('Referer') || returnUrl;
}
let orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber, req.xhr);
let orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber);
let userProfilePromise = userModel.queryProfile(uid);
let addressPromise = addressModel.addressData(uid);
if (req.query.activityType === 'bundle') {
let activityInfo = JSON.parse(req.cookies['activity-info']);
orderPromise = cartModel.cartPay(uid, cartType, orderInfo, sku, skn, buyNumber, activityInfo);
}
return Promise.all([orderPromise, userProfilePromise, addressPromise]).then(result => {
let order = result[0];
let userProfile = result[1];
... ... @@ -88,52 +94,6 @@ exports.orderEnsure = (req, res, next) => {
};
/**
* 快速结算,商品不进购物车
*/
exports.fastPay = (req, res, next) => {
let headerData = headerModel.setNav({
navTitle: '确认订单',
navBtn: false
});
let uid = req.user.uid;
let orderPromise = cartModel.easyPayment(uid, req.query.skuList);
let userProfilePromise = userModel.queryProfile(uid);
let addressPromise = addressModel.addressData(uid);
Promise.all([orderPromise, userProfilePromise, addressPromise]).then(result => {
let order = result[0];
let userProfile = result[1];
let address = result[2];
// 获取用户完整手机号
let mobile = _.get(userProfile, 'data.mobile', '');
let orderAddress = _.get(order, 'address', []);
let addressList = _.get(address, 'data', []);
orderAddress.length && addressList.forEach(address => { //eslint-disable-line
if (address.address_id === orderAddress.address_id) {
mobile = address.mobile;
}
});
let viewData = {
orderEnsurePage: true,
isOrdinaryCart: true,
orderEnsure: order,
userMobile: mobile,
pageHeader: headerData,
pageFooter: true,
module: 'cart',
page: 'order-ensure',
width750: true,
title: '确认订单',
};
res.render('order-ensure', viewData);
}).catch(next);
};
/**
* 购物车选择改变字段,重新运算订单数据
*/
exports.orderCompute = (req, res, next) => {
... ...
... ... @@ -71,9 +71,7 @@ const _yohoCoinCompute = (orderCompute) => {
* @param bool $isAjax 是否是异步请求
* @return array 接口返回的数据
*/
exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumber, isAjax) => {
isAjax = isAjax || false;
exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumber, activityInfo) => {
let result = {};
let skuList = [];
let isLimitGoods = skn && sku && buyNumber; // 存在sku, skn 和buyNumber时为限购商品
... ... @@ -104,8 +102,15 @@ exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumb
);
}
// 区分套餐量贩和普通商品
let cartPayAPI = shoppingAPI.cartPayAPI(uid, cartType, 0, skuList);
if (activityInfo) {
cartPayAPI = shoppingAPI.cartPayAPI(uid, cartType, 0, skuList, activityInfo);
}
return Promise.all([
shoppingAPI.cartPayAPI(uid, cartType, 0, skuList), // 0. 订单数据
cartPayAPI, // 0. 订单数据
orderComputeAPI,
shoppingAPI.getValidCouponCount(uid) // 2. 有效优惠券
]).then(res => {
... ... @@ -140,15 +145,6 @@ exports.cartPay = (uid, cartType, orderInfo, limitProductCode, sku, skn, buyNumb
};
/**
* 快速结算数据处理
*/
exports.easyPayment = (uid, skuList) => {
return shoppingAPI.easyPayment(uid, skuList).then(result => {
return result;
});
};
/**
* 购物车结算--支付方式和配送方式选择以及是否使用有货币接口返回的数据处理
*
* @param int $uid 用户ID
... ...
... ... @@ -30,7 +30,6 @@ router.get('/index/new/pay', authMW, payController.pay);// 统一支付 URL,æ”
router.get('/index/new/pay/alipayresult', authMW, payController.payAli);// 支付宝付款支付成功
router.get('/index/new/orderEnsure', authMW, order.orderEnsure); // 订单结算
router.get('/index/new/fast', authMW, order.fastPay); // 快速结算订单提交
router.post('/index/new/orderCompute', authMW, order.orderCompute); // 结算页参数改变,重新运算
router.post('/index/new/orderSub', authMW, order.orderSub); // 结算页参数改变,重新运算
router.get('/index/new/selectCoupon', authMW, order.selectCoupon); // 选择优惠券 页面
... ...
... ... @@ -19,9 +19,13 @@ const privateKeyList = {
* @param string $skuList 购买限购商品时需要传递的参数
* @return see doc
*/
exports.cartPayAPI = (uid, cartType, isUseYohoCoin, skuList) => {
exports.cartPayAPI = (uid, cartType, isUseYohoCoin, skuList, activityInfo) => {
if (!activityInfo) {
activityInfo = null;
}
let param = {
method: 'app.Shopping.payment',
method: activityInfo ? 'app.Shopping.easyPayment' : 'app.Shopping.payment',
enable_red_envelopes: 0, // h5不返回红包
cart_type: cartType,
yoho_coin_mode: isUseYohoCoin,
... ... @@ -33,27 +37,15 @@ exports.cartPayAPI = (uid, cartType, isUseYohoCoin, skuList) => {
param.product_sku_list = skuList;
}
return api.get('', param);
};
/**
* 立即购买接口,仅支持套餐
*/
exports.easyPayment = (uid, skuList) => {
let param = {
method: 'app.Shopping.easyPayment',
enable_red_envelopes: 0,
cart_type: 'bundle',
yoho_coin_mode: 0,
uid: uid,
activity_id: 'activity_id',
product_sku_list: skuList
};
// 购买套装和量贩商品时数据处理
if (activityInfo) {
param.activity_id = activityInfo.activity_id;
param.product_sku_list = activityInfo.product_sku_list;
}
return api.get('', param, {code: 200});
return api.get('', param);
};
/**
* 购物车结算--支付方式和配送方式选择以及是否使用有货币接口返回的数据处理
* doc: http://git.yoho.cn/yoho-documents/api-interfaces/blob/master/订单/shopping.md
... ...