Authored by lijing

支付成功页

... ... @@ -10,6 +10,7 @@ const mRoot = '../models';
const payModel = require(`${mRoot}/pay`);
const headerModel = require('../../../doraemon/models/header'); // 头部model
// 货到付款
const payCod = (req, res, next) => {
let headerData = headerModel.setNav({
navTitle: '支付成功'
... ... @@ -19,16 +20,71 @@ const payCod = (req, res, next) => {
pageHeader: headerData,
module: 'cart',
page: 'pay',
title: '支付成功'
title: '支付中心 | Yoho!Buy有货 | 潮流购物逛不停'
};
let contentCode = '05afedf76886d732573f10f7451a1703';
payModel.getPayCod(contentCode).then(result => {
res.render('pay/pay-cod', Object.assign(responseData, result));
let param = {
uid: req.user.uid || 10851797, // TODO
udid: req.sessionID || require('md5')(req.ip) || 'yoho',
orderCode: req.query.out_trade_no || 1612935324, // TODO
contentCode: '05afedf76886d732573f10f7451a1703'
};
// 如果没有uid,跳转到首页
if (!param.uid) {
res.redirect('/');
}
payModel.getPayCod(param).then(result => {
if (result.match === true) {
res.render('pay/pay-cod', Object.assign(responseData, result));
} else {
res.redirect('/');// TODO
}
}).catch(next);
};
// 支付宝支付
const payAli = (req, res, next) => {
let headerData = headerModel.setNav({
navTitle: '支付成功'
});
let responseData = {
pageHeader: headerData,
module: 'cart',
page: 'pay',
title: '支付中心 | Yoho!Buy有货 | 潮流购物逛不停'
};
let param = {
uid: req.user.uid || 10851797, // TODO
udid: req.sessionID || require('md5')(req.ip) || 'yoho',
orderCode: req.query.out_trade_no || 1612935324, // TODO
contentCode: '05afedf76886d732573f10f7451a1703'
};
// 如果没有uid,跳转到首页
if (!param.uid) {
res.redirect('/');
}
payModel.getPayAli(param).then(result => {
if (result.match === true) {
res.render('pay/pay-ali', Object.assign(responseData, result));
} else {
res.redirect('/');// TODO
}
}).catch(next);
};
module.exports = {
payCod
payCod,
payAli
};
... ...
... ... @@ -6,31 +6,132 @@
'use strict';
const api = global.yoho.API;
const serviceAPI = global.yoho.ServiceAPI;
const utils = '../../../utils';
const productProcess = require(`${utils}/product-process`);
// 资源位
const getPayCod = (contentCode) => {
const _getBanner = (param) => {
return serviceAPI.get('operations/api/v5/resource/get', {
content_code: contentCode
content_code: param.contentCode
}, {
code: 200
}).then((result) => {
let resu = {
banner: []
};
result = result.data;
if (result && result.code === 200) {
return result;
});
};
// 购买此商品的用户也购买了
const _getOthersBuy = (param) => {
return api.get('', {
method: 'app.recommend.purchased',
productSkn: 51121942,
udid: '123456abdede',
rec_pos: '100005',
limit: 2
}, {
code: 200
}).then((result) => {
if (result && result.data && result.data.product_list) {
return productProcess.processProductList(result.data.product_list);
}
resu.banner = result.data;
});
};
// 订单信息
const _getOtherDetail = (param) => {
return api.get('', {
method: 'app.SpaceOrders.detail',
uid: param.uid,
order_code: param.orderCode
}, {
code: 200
}).then((result) => {
return result;
});
};
// 货到付款
const getPayCod = (param) => {
return api.all([
_getBanner(param),
_getOthersBuy(),
_getOtherDetail(param)
]).then((result) => {
let resu = {
match: true,
banner: [],
othersBuy: []
};
if (result && result[0]) {
resu.banner = result[0];
}
if (result && result[1]) {
resu.othersBuy = result[1];
}
if (result && result[2] && result[2].data && result[2].data.payment_amount) {
resu.payment = result[2].data.payment_amount;
} else {
resu.match = false;
}
resu.orderCode = param.orderCode;
resu.orderUrl = '/home/orders/detail?order_code=' + param.orderCode;
return resu;
});
};
// 支付宝支付
const getPayAli = (param) => {
return api.all([
_getBanner(param),
_getOthersBuy(),
_getOtherDetail(param)
]).then((result) => {
let resu = {
match: true,
banner: [],
othersBuy: []
};
if (result && result[0]) {
resu.banner = result[0];
}
if (result && result[1]) {
resu.othersBuy = result[1];
}
if (result && result[2] && result[2].data && result[2].data.payment_amount) {
resu.payment = result[2].data.payment_amount;
} else {
logger.error('banner is not 200');
resu = {};
resu.match = false;
}
resu.orderCode = param.orderCode;
resu.orderUrl = '/home/orders/detail?order_code=' + param.orderCode;
return resu;
});
};
module.exports = {
getPayCod
getPayCod,
getPayAli
};
... ...
... ... @@ -14,5 +14,6 @@ const payController = require(`${cRoot}/pay`);
router.get('/index/count', countController.cartCount);
router.get('/paySuccess/payCod', payController.payCod);// 支付成功,货到付款
router.get('/shopping/pay/aliwapreturn', payController.payAli);// 支付成功,支付宝付款
module.exports = router;
... ...
<div class="pay-success">
<div class="top-tip">
<div class="img-c"></div>
<p class="ok-tip">恭喜您,付款成功!</p>
</div>
<div class="info-table-c">
<table class="info-table">
<tr>
<td>订单编号</td>
<td>{{orderCode}}</td>
</tr>
<tr>
<td>付款金额</td>
<td>¥{{payment}}</td>
</tr>
<tr>
<td>付款方式</td>
<td>支付宝</td>
</tr>
</table>
</div>
<div class="btn-c">
<a href="/">随便逛逛</a>
<a href="{{orderUrl}}">查看订单</a>
</div>
{{# banner}}
{{#data}}
<a href="{{url}}" class="ad-pic" alt="{{alt}}">
<img src="{{image src 640 200}}" />
</a>
{{/data}}
{{/banner}}
<div class="others-buy clearfix">
<p>购买此商品的用户也购买了</p>
{{# othersBuy}}
{{> common/goods}}
{{/ othersBuy}}
</div>
{{> home/maybe-like}}
</div>
... ...
... ... @@ -2,17 +2,17 @@
<div class="top-tip">
<div class="img-c"></div>
<p class="ok-tip">订单提交成功</p>
<p class="left-tip">您需要在收货时向售货员支付¥69.00</p>
<p class="left-tip">您需要在收货时向售货员支付¥{{payment}}</p>
</div>
<div class="info-table-c">
<table class="info-table">
<tr>
<td>订单编号</td>
<td>123456789</td>
<td>{{orderCode}}</td>
</tr>
<tr>
<td>付款金额</td>
<td>¥69.00</td>
<td>¥{{payment}}</td>
</tr>
<tr>
<td>付款方式</td>
... ... @@ -21,8 +21,8 @@
</table>
</div>
<div class="btn-c">
<a>随便逛逛</a>
<a>查看订单</a>
<a href="/">随便逛逛</a>
<a href="{{orderUrl}}">查看订单</a>
</div>
{{# banner}}
{{#data}}
... ... @@ -31,6 +31,12 @@
</a>
{{/data}}
{{/banner}}
<div class="others-buy clearfix">
<p>购买此商品的用户也购买了</p>
{{# othersBuy}}
{{> common/goods}}
{{/ othersBuy}}
</div>
{{> home/maybe-like}}
</div>
... ...
... ... @@ -91,4 +91,19 @@
background-color: #fff;
margin: 25px 0;
}
.others-buy {
width: 100%;
margin-bottom: 25px;
background-color: #fff;
padding: 25px 0;
border-top: solid 1px #e4e4e4;
padding-left: 15px;
p {
text-align: center;
color: #444;
font-size: 27px;
}
}
}
\ No newline at end of file
... ...