Commit ddf73099 authored by Hsinli's avatar Hsinli

add

parents 43e8f295 e278d6aa
Pipeline #13612 passed with stage
in 5 seconds
...@@ -4,6 +4,16 @@ const Controller = require('egg').Controller; ...@@ -4,6 +4,16 @@ const Controller = require('egg').Controller;
const xml2js = require('xml2js').parseString; const xml2js = require('xml2js').parseString;
class OrderController extends Controller { class OrderController extends Controller {
async getOrderPayInfo() {
const { ctx } = this;
const order_id = ctx.params.order_id;
const result = await ctx.service.credit.order.getOrderPayInfo(order_id);
ctx.success({ result });
}
//我的历史首页 //我的历史首页
async getRecord() { async getRecord() {
...@@ -20,12 +30,13 @@ class OrderController extends Controller { ...@@ -20,12 +30,13 @@ class OrderController extends Controller {
const { ctx } = this; const { ctx } = this;
const input_params = ctx.request.body; const input_params = ctx.request.body;
const { method, order_id } = input_params; const { method, order_id, reject_url } = input_params;
const result = await ctx.service.credit.order.unifiedOrder(method, order_id); const result = await ctx.service.credit.order.unifiedOrder(method, order_id);
result.reject_url = reject_url;
ctx.success({ result }); ctx.success({ result });
} }
//微信支付通知
async payNotice() { async payNotice() {
const { ctx } = this; const { ctx } = this;
...@@ -50,6 +61,7 @@ class OrderController extends Controller { ...@@ -50,6 +61,7 @@ class OrderController extends Controller {
return; return;
} }
//查询支付是否完成
async checkPay() { async checkPay() {
const { ctx } = this; const { ctx } = this;
......
...@@ -10,6 +10,7 @@ module.exports = app => { ...@@ -10,6 +10,7 @@ module.exports = app => {
router.get('/order/pay/:order_id', 'credit.order.payOrder'); router.get('/order/pay/:order_id', 'credit.order.payOrder');
router.post('/order/pay_notice', 'credit.order.payNotice'); router.post('/order/pay_notice', 'credit.order.payNotice');
router.get('/order/check_pay/:order_id', 'credit.order.checkPay'); router.get('/order/check_pay/:order_id', 'credit.order.checkPay');
router.get('/order/info/:order_id', 'credit.order.getOrderPayInfo');
router.get('/blacklist/home', 'credit.home.home');//首页 router.get('/blacklist/home', 'credit.home.home');//首页
......
...@@ -67,11 +67,12 @@ class CommonService extends Service { ...@@ -67,11 +67,12 @@ class CommonService extends Service {
async WexinUnifiedOrder(params) { async WexinUnifiedOrder(params) {
const { ctx } = this; const { ctx } = this;
const { body, trade_no, total_fee, notify_url, product_id, scene_info } = params; const { body, trade_no, total_fee, notify_url, product_id, scene_info, expire_time } = params;
const appid = this.config.MCH_APPID; const appid = this.config.MCH_APPID;
const mch_id = this.config.MCH_ID; const mch_id = this.config.MCH_ID;
const trade_type = 'MWEB'; const trade_type = 'MWEB';
const nonce_str = ctx.helper.createNoncestr(); const nonce_str = ctx.helper.createNoncestr();
const time_expire = expire_time ? expire_time : moment().add(1, 'days').format('YYYYMMDDHHmmss');
// const spbill_create_ip = ctx.helper.getClientIP(); // const spbill_create_ip = ctx.helper.getClientIP();
const spbill_create_ip = '122.224.130.226'; const spbill_create_ip = '122.224.130.226';
let json_data = { let json_data = {
...@@ -86,6 +87,7 @@ class CommonService extends Service { ...@@ -86,6 +87,7 @@ class CommonService extends Service {
scene_info, scene_info,
trade_type, trade_type,
nonce_str, nonce_str,
time_expire,
}; };
const sign = this.getWexinSign(json_data); const sign = this.getWexinSign(json_data);
json_data.sign = sign; json_data.sign = sign;
......
...@@ -5,7 +5,6 @@ const Service = require('egg').Service; ...@@ -5,7 +5,6 @@ const Service = require('egg').Service;
const moment = require('moment'); const moment = require('moment');
const _ = require('lodash'); const _ = require('lodash');
class OrderService extends Service { class OrderService extends Service {
//历史订单 //历史订单
...@@ -62,7 +61,7 @@ class OrderService extends Service { ...@@ -62,7 +61,7 @@ class OrderService extends Service {
const expire_time = moment(created_at).valueOf() + 24 * 3600; const expire_time = moment(created_at).valueOf() + 24 * 3600;
const now_time = moment().valueOf(); const now_time = moment().valueOf();
const state_time = moment().format('YYYY-MM-DD HH:mm:ss'); const state_time = moment().format('YYYY-MM-DD HH:mm:ss');
if (expire_time < now_time && state === '待支付' && pay_status === 0) { if (expire_time < now_time && (state === '待支付' || state === '已取消') && pay_status === 0) {
const ret = await ctx.prometheusModel.CreditOrder.update({ state: '已失效', state_time: state_time }, { where: { id } }); const ret = await ctx.prometheusModel.CreditOrder.update({ state: '已失效', state_time: state_time }, { where: { id } });
if (ret || ret[0]) { if (ret || ret[0]) {
order.state = '已失效'; order.state = '已失效';
...@@ -130,6 +129,42 @@ class OrderService extends Service { ...@@ -130,6 +129,42 @@ class OrderService extends Service {
return order; return order;
} }
async getOrderPayInfo(order_id) {
const { ctx } = this;
const order = await ctx.prometheusModel.CreditOrder.findOne({ where: { id: order_id } });
if (!order || !order.id) {
ctx.failed('error order');
}
const preferential = await this.getPreferential(order.type);
let preferential_price = 0;
let preferential_title = '';
if (!preferential || !preferential.id) {
preferential_price = preferential.price;
preferential_title = preferential.title;
}
const price = order.price - preferential_price;
await ctx.prometheusModel.CreditOrder.update({ price, preferential_price, preferential_id: preferential.id }, { where: { id: order.id } });
const type_obj = {
1: 'blacklist',
2: 'callrisk',
}
const ret = {
price,
original_price: order.price,
original_price_title: '原价',
preferential_price,
preferential_title,
order_no: order.order_no,
type: type_obj[order.type],
type_title: order.type === 1 ? '黑名单检测' : '个人通话风险检测',
}
return ret;
}
async checkOrderPay(order_id) { async checkOrderPay(order_id) {
const { ctx } = this; const { ctx } = this;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment