test 10 meses atrás
pai
commit
17bb0bf871

+ 1 - 1
src/config/config.prod.ts

@@ -12,7 +12,7 @@ export default {
         host: '127.0.0.1',
         port: 3306,
         username: 'fusion',
-        password: 'NW4sMHPrSMR4Z2xA',
+        password: 'xC2Pypym5RsJEnP6',
         database: 'fusion',
         // 自动建表 注意:线上部署的时候不要使用,有可能导致数据丢失
         synchronize: false,

+ 0 - 5
src/modules/dj/controller/admin/order.ts

@@ -28,9 +28,4 @@ export class OrdertController extends BaseController {
   async notify(@Body('id') id) {
     return this.ok(await this.orderService.notify(id));
   }
-
-  @Post('/settle', { summary: '结算' })
-  async settle(@Body('id') id) {
-    return this.ok(await this.orderService.settle(id));
-  }
 }

+ 3 - 0
src/modules/dj/entity/kyc.ts

@@ -21,6 +21,9 @@ export class KycEntity extends BaseEntity {
   @Column({ comment: 'KYC_ID' })
   customerId: string;
 
+  @Column({ comment: 'country' })
+  country: string;
+
   @Column({ comment: 'KYC_Level' })
   level: string;
 

+ 9 - 10
src/modules/dj/service/channels/sunpay.ts

@@ -10,21 +10,20 @@ import * as FormData from 'form-data';
 import * as fs from 'fs';
 
 const URL = 'https://sandbox-oapi.sunpay.pro/api/v3-2/Fiat/Direct/PayIn';
-//  https://oapi.sunpay.pro/api/v3/Crypto/PayIn 
 const BASIC_KEY_URL = 'https://sandbox-oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateBasicUser';
-// https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateBasicUser 
 const ADVANCED_KEY_URL = 'https://sandbox-oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateAdvancedUser';
-//  https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateAdvancedUser 
 const PREMINUM_KEY_URL = 'https://sandbox-oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreatePremiumUser';
-// https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreatePremiumUser
 const COUNTRIES_URL = 'https://sandbox-oapi.sunpay.pro/api/v3-2/Fiat/Countries';
+
+// const URL = 'https://oapi.sunpay.pro/api/v3/Crypto/PayIn'
+// const BASIC_KEY_URL = 'https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateBasicUser'
+// const ADVANCED_KEY_URL = 'https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreateAdvancedUser'
+// const PREMINUM_KEY_URL = 'https://oapi.sunpay.pro/api/v3-2/Fiat/Kyc/CreatePremiumUser'
 // const COUNTRIES_URL = 'https://oapi.sunpay.pro/api/v3-2/Fiat/Countries';
 
 const API_KEY = '08dcd396-a91a-486a-8ca5-02150819d7ae';
 const API_SERECT = '8357086ffbd2cc610afe8a5f5359f7f8563bd887f9e6c376bc3b86b512e2e74e';
-const HOST = '127.0.0.1:9000';
-const NOTIFY_HOST = `http://${HOST}/api/admin/dj/open/`;
-const MER_ID = '08dcd396-a91a-486a-8ca5-02150819d7ae';
+const NOTIFY_HOST = `http://157.175.73.225/api/admin/dj/open/SunCard/notifyOrder`;
 
 @Provide()
 export class SunPayService extends BaseService {
@@ -159,7 +158,7 @@ export class SunPayService extends BaseService {
 
   async order(payload) {
     return {
-      payUrl: `http://localhost:8080/#/?t=${payload.orderNo}`,
+      payUrl: `http://157.175.73.225/kyc/index.html#/?t=${payload.orderNo}`,
       isDone: false
     };
   }
@@ -172,8 +171,8 @@ export class SunPayService extends BaseService {
       amount: +payload.amount,
       payment_type: "CARD",
       client_ip: payload.userIp || "127.0.0.0",
-      billing_address_country_code: "US",
-      webhook_url: NOTIFY_HOST + '/SunCard/notifyOrder',
+      billing_address_country_code: payload.country,
+      webhook_url: NOTIFY_HOST,
       cancel_url: payload.returnUrl || 'https://www.baidu.com',
     };
     const timestamp = +moment();

+ 30 - 24
src/modules/dj/service/kyc.ts

@@ -24,17 +24,22 @@ export class KycService extends BaseService {
   async toPay(payload) {
     const { orderNo, customerId } = payload;
     const order = await this.orderService.findByOrderNo(orderNo);
-    if(!orderNo || !order) {
+    const customer = await this.kycEntity.findOneBy({ customerId })
+    if (!orderNo || !order) {
       throw new CoolCommException('Order does not exist');
     }
-    if(order.payUrl) {
+    if(!customer) {
+      throw new CoolCommException('Customer does not exist');
+    }
+    if (order.payUrl) {
       return {
         payUrl: order.payUrl
       };
     }
-    const { payUrl, traceNo } =  await this.sunPayService.createOrder({
+    const { payUrl, traceNo } = await this.sunPayService.createOrder({
       ...order,
-      customerId
+      customerId,
+      country: customer.country
     })
     order.payUrl = payUrl;
     order.traceNo = traceNo;
@@ -44,29 +49,29 @@ export class KycService extends BaseService {
     };
   }
 
-  async createAdvanced(payload, files){
-    const kyc = await this.kycEntity.findOneBy({customerId: payload.customerId});
-    if(!payload.customerId || !kyc) {
+  async createAdvanced(payload, files) {
+    const kyc = await this.kycEntity.findOneBy({ customerId: payload.customerId });
+    if (!payload.customerId || !kyc) {
       throw new CoolCommException('KYC user does not exist');
     }
     const fileObj = {};
     files.forEach(item => {
       fileObj[item.fieldName] = item
-    })  
+    })
     const data = await this.sunPayService.createAdvanced(payload, fileObj);
     await this.kycEntity.update(kyc.id, { level: '2' });
     return data;
   }
 
-  async createPremium(payload, files){
-    const kyc = await this.kycEntity.findOneBy({customerId: payload.customerId});
-    if(!payload.customerId || !kyc) {
+  async createPremium(payload, files) {
+    const kyc = await this.kycEntity.findOneBy({ customerId: payload.customerId });
+    if (!payload.customerId || !kyc) {
       throw new CoolCommException('KYC user does not exist');
     }
     const fileObj = {};
     files.forEach(item => {
       fileObj[item.fieldName] = item
-    })  
+    })
     const data = await this.sunPayService.createPremium(payload, fileObj);
     await this.kycEntity.update(kyc.id, { level: '3' });
     return data;
@@ -75,18 +80,19 @@ export class KycService extends BaseService {
   async createBasic(payload) {
     const { orderNo } = payload;
     const order = await this.orderService.findByOrderNo(orderNo);
-    if(!orderNo || !order) {
+    if (!orderNo || !order) {
       throw new CoolCommException('Order does not exist');
     }
     const { customerId } = await this.sunPayService.createBasic(payload);
-    if(customerId) {
+    if (customerId) {
       await this.kycEntity.insert({
         userId: order.userId,
         mchId: order.mchId,
         code: order.code,
         kycUserId: payload.outUserId,
         customerId: customerId,
-        level: '1'
+        level: '1',
+        country: payload.countryCode
       })
       return { customerId }
     } else {
@@ -100,7 +106,7 @@ export class KycService extends BaseService {
 
   async getLevel(orderNo) {
     const order = await this.orderService.findByOrderNo(orderNo);
-    if(!orderNo || !order) {
+    if (!orderNo || !order) {
       throw new CoolCommException('Order does not exist');
     }
     const outUserId = md5(order.mchId + '_' + order.userId + 'v1');
@@ -115,20 +121,20 @@ export class KycService extends BaseService {
       code: order.code,
       mchId: order.mchId,
     });
-    if(kyc) {
+    if (kyc) {
       data.level = +kyc.level + 1;
       data.customerId = kyc.customerId
     }
-    if(data.level > 3) {
+    if (data.level > 3) {
       return data;
     }
     const dailyLevel = this.getAmountLevel(order.amount);
-    if(dailyLevel === 3) {
+    if (dailyLevel === 3) {
       data.levelEnd = dailyLevel;
       return data;
     }
     const weekly = await this.getWeekLyLevel(order);
-    if(weekly === 3) {
+    if (weekly === 3) {
       data.levelEnd = dailyLevel;
       return data;
     }
@@ -140,7 +146,7 @@ export class KycService extends BaseService {
   async getMonthlyLevel(order) {
     const month = await this.orderService.getMonthlyAmount(order.mchId, order.userId, order.code);
     let amount = 0;
-    if(month && month[0]) {
+    if (month && month[0]) {
       amount = +month[0].total;
     }
     return this.getAmountLevel(amount + +order.amount);
@@ -149,16 +155,16 @@ export class KycService extends BaseService {
   async getWeekLyLevel(order) {
     const weekly = await this.orderService.getWeeklyAmount(order.mchId, order.userId, order.code);
     let amount = 0;
-    if(weekly && weekly[0]) {
+    if (weekly && weekly[0]) {
       amount = +weekly[0].total;
     }
     return this.getAmountLevel(amount + +order.amount);
   }
 
   getAmountLevel(amount: number) {
-    if(amount <= 1000) {
+    if (amount <= 1000) {
       return 1;
-    } else if(amount <= 5000) {
+    } else if (amount <= 5000) {
       return 2;
     } else {
       return 3;