Authored by 郭成尧

easypay-frame

/*
* @Author: Targaryen
* @Date: 2017-06-21 10:15:38
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 11:51:51
*/
const headerModel = require('../../../doraemon/models/header');
const EasyPayModel = require('../models/EasyPayModel');
class EasyPayController {
/**
* 确认订单页面
* @param {*} req
* @param {*} res
* @param {*} next
*/
orderEnsure(req, res, next) {
req.ctx(EasyPayModel).easyPayment({
uid: req.user.uid,
cart_type: req.query.cart_type,
product_sku_list: req.query.product_sku_list || '[{"goods_type":"ordinary","selected":"N","product_sku":2026740,"promotion_id":"","buy_number":"1"}]' // eslint-disable-line
}).then(result => {
let headerData = headerModel.setNav({
navTitle: '确认订单',
navBtn: false
});
return res.render('order-ensure', {
pageHeader: headerData,
module: 'easypay',
page: 'order-ensure',
orderEnsure: result
});
}).catch(next);
}
/**
* 参数更改,重新运算结算数据
* @param {*} req
* @param {*} res
* @param {*} next
*/
orderCompute(req, res, next) {
req.ctx(EasyPayModel).easyCompute({
uid: req.user.uid,
cart_type: req.body.cart_type,
delivery_way: req.body.delivery_way,
payment_type: req.body.payment_type,
product_sku_list: req.body.product_sku_list,
coupon_code: req.body.coupon_code,
use_yoho_coin: req.body.use_yoho_coin,
}).then(result => {
return res.json(result);
}).catch(next);
}
/**
* 提交订单
* @param {*} req
* @param {*} res
* @param {*} next
*/
orderSub(req, res, next) {
let qhy_union = ''; // TODO
req.ctx(EasyPayModel).easySubmit({
uid: req.user.uid,
cart_type: req.body.cart_type,
address_id: req.body.address_id,
delivery_time: req.body.delivery_time,
delivery_way: req.body.delivery_way,
use_yoho_coin: req.body.use_yoho_coin,
use_red_envelopes: req.body.use_red_envelopes,
payment_id: req.body.payment_id,
payment_type: req.body.payment_type,
product_sku_list: req.body.product_sku_list,
is_print_price: req.body.is_print_price,
qhy_union: qhy_union,
invoices_title: req.body.invoices_title,
invoices_type_id: req.body.invoices_type_id,
remark: req.body.remark,
activity_id: req.body.activity_id
}).then(result => {
return res.json(result);
}).catch(next);
}
}
module.exports = new EasyPayController();
... ...
/*
* @Author: Targaryen
* @Date: 2017-06-21 10:15:45
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 11:38:49
*/
const api = global.yoho.API;
class EasyPayModel extends global.yoho.BaseModel {
constructor(ctx) {
super(ctx);
}
/**
* 结算页面数据渲染
* @param {*} params
*/
easyPayment(params) {
let finalParams = {
method: 'app.Shopping.easyPayment',
uid: params.uid,
enable_red_envelopes: 0, // h5不返回红包
cart_type: params.cart_type || 'ordinary',
yoho_coin_mode: params.yoho_coin_mode || 0, // 是否使用有货币
product_sku_list: JSON.stringify(params.product_sku_list),
is_support_apple_pay: 'N'
};
if (params.activity_id) {
finalParams.activity_id = params.activity_id;
}
return api.get('', finalParams, { cache: false });
}
/**
* 数据改变,重新计算结算数据
* @param {*} params
*/
easyCompute(params) {
let finalParams = {
method: 'app.Shopping.easyCompute',
uid: params.uid,
cart_type: params.cart_type,
delivery_way: params.delivery_way,
payment_type: params.payment_type,
product_sku_list: params.product_sku_list
};
if (params.coupon_code) {
finalParams.coupon_code = params.coupon_code;
}
if (params.use_yoho_coin) {
finalParams.use_yoho_coin = params.use_yoho_coin;
}
return api.get('', finalParams, {cache: false});
}
/**
* 提交订单
* @param {*} params
*/
easySubmit(params) {
let finalParams = {
method: 'app.Shopping.easySubmit',
uid: params.uid,
cart_type: params.cart_type,
address_id: params.address_id,
delivery_time: params.delivery_time,
delivery_way: params.delivery_way,
use_yoho_coin: params.use_yoho_coin || 0,
use_red_envelopes: params.use_red_envelopes || 0,
payment_id: params.payment_id,
payment_type: params.payment_type || 1,
product_sku_list: JSON.stringify(params.product_sku_list),
is_print_price: params.is_print_price || 'N',
qhy_union: params.qhy_union
};
if (params.invoices_title) {
finalParams.invoices_title = params.invoices_title;
}
if (params.invoices_type_id) {
finalParams.invoices_type_id = params.invoices_type_id;
}
if (params.remark) {
finalParams.remark = params.remark;
}
if (params.activity_id) {
finalParams.activity_id = params.activity_id;
}
return api.get('', finalParams, {cache: false});
}
}
module.exports = EasyPayModel;
... ...
... ... @@ -16,6 +16,7 @@ const countController = require(`${cRoot}/count`);
const payController = require(`${cRoot}/pay`);
const indexController = require(`${cRoot}/index`);
const ticketsConfirmController = require(`${cRoot}/ticketsConfirm`);
const EasyPayController = require(`${cRoot}/EasyPayController`);
// Your controller here
router.all('/index/seckill/', authMW);
... ... @@ -34,7 +35,7 @@ router.get('/index/new/pay/alipayresult', authMW, payController.payAli);// 支
router.get('/index/new/orderEnsure', authMW, order.orderEnsure); // 订单结算
router.post('/index/new/orderCompute', authMW, order.orderCompute); // 结算页参数改变,重新运算
router.post('/index/new/orderSub', authMW, order.orderSub); // 结算页参数改变,重新运算
router.post('/index/new/orderSub', authMW, order.orderSub); // 订单提交
router.get('/index/new/selectCoupon', authMW, order.selectCoupon); // 选择优惠券 页面
router.get('/index/new/couponList', order.couponList); // [ajax]获取优惠券列表
router.post('/index/new/couponSearch', order.couponSearch); // [ajax]购物车输入优惠券码使用优惠券
... ... @@ -61,6 +62,9 @@ router.post('/index/new/giftinfo', indexController.giftinfo); // 获取购物车
router.post('/index/new/incrbundle', indexController.incrBundle); // 购物车增加套餐数量
router.post('/index/new/decrbundle', indexController.decrBundle); // 购物车减少加套餐数量
router.get('/easypay/orderensure', authMW, EasyPayController.orderEnsure); // 立即购买订单确认页面
router.post('/easypay/ordercompute', authMW, EasyPayController.orderCompute); // 立即购买订单重新计算
router.post('/easypay/ordersub', authMW, EasyPayController.orderSub); // 立即购买订单提交
// 支付中心 URL,由于微信安全限制,在现有 URL 后追加 new ,通过 subDomain 中间件转发到此
router.get('/home/orders/paynew', authMW, payController.payCenter);
... ...
/*
* @Author: Targaryen
* @Date: 2017-06-21 10:30:21
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 10:33:20
*/
require('easypay/order-ensure.page.css');
... ...
/*
* @Author: Targaryen
* @Date: 2017-06-21 10:31:10
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 10:32:16
*/
.easy-pay-orderensure {
background-color: #fff;
}
... ...