Authored by 郭成尧

pay-modified

@@ -24,11 +24,13 @@ const payCenter = (req, res, next) => { @@ -24,11 +24,13 @@ const payCenter = (req, res, next) => {
24 let uid = req.user.uid; 24 let uid = req.user.uid;
25 let sessionKey = req.session.TOKEN; 25 let sessionKey = req.session.TOKEN;
26 26
27 - if (!orderCode || !uid || !sessionKey) { 27 + if (!orderCode || !uid) {
28 res.redirect('/'); 28 res.redirect('/');
29 } 29 }
30 30
31 - sessionKey = sessionKey.substr(0, sessionKey.length - 8); 31 + if (sessionKey) {
  32 + sessionKey = sessionKey.substr(0, sessionKey.length - 8);
  33 + }
32 34
33 let headerData = headerModel.setNav({ 35 let headerData = headerModel.setNav({
34 navTitle: '支付中心' 36 navTitle: '支付中心'
@@ -59,12 +61,12 @@ const payCenter = (req, res, next) => { @@ -59,12 +61,12 @@ const payCenter = (req, res, next) => {
59 * @param req 61 * @param req
60 * @param res 62 * @param res
61 */ 63 */
62 -const goAlipay = (req, res) => { 64 +const goAlipay = (req, res, next) => {
63 let orderCode = req.query.order_code; 65 let orderCode = req.query.order_code;
64 let user = req.user; 66 let user = req.user;
65 let uid = req.user.uid; 67 let uid = req.user.uid;
66 let sessionKey = req.session.TOKEN; 68 let sessionKey = req.session.TOKEN;
67 - let paymentType = req.query.payment_type; 69 + let payment = req.query.payment;
68 70
69 if (!orderCode || !uid || !sessionKey) { 71 if (!orderCode || !uid || !sessionKey) {
70 res.redirect('/'); 72 res.redirect('/');
@@ -77,14 +79,14 @@ const goAlipay = (req, res) => { @@ -77,14 +79,14 @@ const goAlipay = (req, res) => {
77 sessionKey: sessionKey 79 sessionKey: sessionKey
78 }); 80 });
79 81
80 - if (!orderDetail) { 82 + if (!orderDetail || !orderDetail.data) {
81 return res.json({ 83 return res.json({
82 code: 400, 84 code: 400,
83 msg: '没有找到该订单!' 85 msg: '没有找到该订单!'
84 }); 86 });
85 } 87 }
86 88
87 - if (orderDetail.is_cancel === 'Y') { 89 + if (orderDetail.data.is_cancel === 'Y') {
88 let url = helpers.urlFormat('/home/orders/detail', { order_code: orderCode }); 90 let url = helpers.urlFormat('/home/orders/detail', { order_code: orderCode });
89 91
90 return res.json({ 92 return res.json({
@@ -93,36 +95,13 @@ const goAlipay = (req, res) => { @@ -93,36 +95,13 @@ const goAlipay = (req, res) => {
93 }).redirect(url); 95 }).redirect(url);
94 } 96 }
95 97
96 - /* TODO 要不搞点儿日志? */  
97 - yield payModel.savePrePayInfo({  
98 - uid: uid,  
99 - orderCode: orderCode,  
100 - payment: paymentType  
101 - });  
102 -  
103 - let payRequestPars = Payment.pay(user, orderDetail, paymentType, req.protocol);  
104 -  
105 - if (!payRequestPars) {  
106 - return res.json({  
107 - code: 400,  
108 - msg: '支付系统繁忙,请稍后再试'  
109 - });  
110 - }  
111 -  
112 - let paymentRecod = yield payModel.updateOrderPayment({  
113 - orderCode: orderCode,  
114 - payment: paymentType,  
115 - uid: uid  
116 - });  
117 -  
118 - if (!paymentRecod) {  
119 - return res.json({  
120 - code: 400,  
121 - msg: '系统繁忙,请稍后再试'  
122 - });  
123 - }  
124 -  
125 - return res.redirect(payRequestPars.pay_url + payRequestPars.pars); 98 + Payment.pay(user, orderDetail.data, payment, req.protocol).then(result => {
  99 + if (result && result.data && result.data.href) {
  100 + res.redirect(result.data.href);
  101 + } else {
  102 + res.redirect('/');
  103 + }
  104 + }).catch(next);
126 })(); 105 })();
127 }; 106 };
128 107
1 /** 1 /**
2 - * 支付成功页 2 + * 支付
3 * @author: jing.li<jing.li@yoho.cn> 3 * @author: jing.li<jing.li@yoho.cn>
4 * @date: 2016/10/25 4 * @date: 2016/10/25
5 */ 5 */
@@ -16,6 +16,13 @@ const _ = require('lodash'); @@ -16,6 +16,13 @@ const _ = require('lodash');
16 const co = require('bluebird').coroutine; 16 const co = require('bluebird').coroutine;
17 const logger = global.yoho.logger; 17 const logger = global.yoho.logger;
18 18
  19 +// 支付方式
  20 +const payments = {
  21 + alipay: 33,
  22 + wechat: 36,
  23 + alibank: 42
  24 +};
  25 +
19 // 资源位 26 // 资源位
20 const _getBanner = (param) => { 27 const _getBanner = (param) => {
21 return serviceAPI.get('operations/api/v5/resource/get', { 28 return serviceAPI.get('operations/api/v5/resource/get', {
@@ -87,22 +94,6 @@ const _getOthersBuy = (param) => { @@ -87,22 +94,6 @@ const _getOthersBuy = (param) => {
87 }; 94 };
88 95
89 /** 96 /**
90 - * 选择支付,校验时间间隔,插入数据  
91 - * @returns {*|Promise.<TResult>}  
92 - * @private  
93 - */  
94 -const savePrePayInfo = (params) => {  
95 - return api.get('', {  
96 - method: 'app.order.savePrePayInfo',  
97 - uid: params.uid,  
98 - orderCode: params.orderCode,  
99 - payment: params.payment  
100 - }, { code: 200 }).then(result => {  
101 - return result && result.data;  
102 - });  
103 -};  
104 -  
105 -/**  
106 * 获取订单支付银行信息 97 * 获取订单支付银行信息
107 * @param id 98 * @param id
108 */ 99 */
@@ -260,10 +251,13 @@ const payTool = { @@ -260,10 +251,13 @@ const payTool = {
260 * 支持的支付方式列表 251 * 支持的支付方式列表
261 * @returns {[*,*]} 252 * @returns {[*,*]}
262 */ 253 */
263 - payAppInfo() { 254 + payAppInfo(orderCode) {
264 return [{ 255 return [{
265 appIcon: '', 256 appIcon: '',
266 - payLink: helpers.urlFormat('/shopping/pay/index'), 257 + payLink: helpers.urlFormat('/cart/index/new/pay/goalipay', {
  258 + payment: payments.alipay + '_platform',
  259 + order_code: orderCode
  260 + }),
267 appId: 'alipay', 261 appId: 'alipay',
268 app: '支付宝支付', 262 app: '支付宝支付',
269 hint: '支付宝钱包支付', 263 hint: '支付宝钱包支付',
@@ -310,7 +304,7 @@ const payCenter = (params) => { @@ -310,7 +304,7 @@ const payCenter = (params) => {
310 let resultData = _.get(result, 'data', {}); 304 let resultData = _.get(result, 'data', {});
311 305
312 return { 306 return {
313 - payAppInfo: payTool.payAppInfo(), 307 + payAppInfo: payTool.payAppInfo(params.orderCode),
314 orderCode: params.orderCode, 308 orderCode: params.orderCode,
315 hasWxShare: true, 309 hasWxShare: true,
316 orderTotal: resultData.payment_amount || 0, 310 orderTotal: resultData.payment_amount || 0,
@@ -394,8 +388,8 @@ const getPayAli = (param) => { @@ -394,8 +388,8 @@ const getPayAli = (param) => {
394 }; 388 };
395 389
396 module.exports = { 390 module.exports = {
  391 + payments,
397 getOtherDetail: _getOtherDetail, 392 getOtherDetail: _getOtherDetail,
398 - savePrePayInfo,  
399 updateOrderPayment, 393 updateOrderPayment,
400 updateOrderPayBank, 394 updateOrderPayBank,
401 getBankByOrder, 395 getBankByOrder,