Răsfoiți Sursa

feat(): payIn 入金api转接

zerogo 7 luni în urmă
părinte
comite
37855d7857

+ 13 - 10
src/modules/api/controller/payIn.ts

@@ -1,6 +1,7 @@
 import { CoolController, BaseController } from '@cool-midway/core';
-import { ALL, Body, Get, Inject, Post, Provide } from '@midwayjs/decorator';
+import { ALL, Body, Get, Inject, Post, Provide,Query,Param } from '@midwayjs/decorator';
 import { BusinessEntity } from '../../payment/entity/business';
+import { OrderService } from "../../payment/service/order";
 
 /**
  * 入金
@@ -8,6 +9,8 @@ import { BusinessEntity } from '../../payment/entity/business';
 @Provide()
 @CoolController('/api/v1/Fiat')
 export class PayInController extends BaseController {
+  @Inject()
+  orderService: OrderService;
   /**
    * 创建订单
    * /api/v3/Fiat/PayIn
@@ -20,38 +23,38 @@ export class PayInController extends BaseController {
     // 关键参数校验
     // 数据落库
     // 回调
-    console.log(business);
-    return this.ok('hello, cool-admin!!!');
+    console.log('createPayInOrder-=-=payIn-=-=000',business);
+    return this.ok(await this.orderService.recharge(business));
   }
   /**
    * 查询订单
    * /api/v3/Fiat/PayIn/{orderNo}
    */
-  @Get('/PayIn/:orderNo', { summary: '查询订单' })
-  async getPayInForOrderNo(@Body(ALL) business: BusinessEntity) {
+  @Get('/PayIn/', { summary: '查询订单' })
+  async getPayInForOrderNo(@Query('orderNo') orderNo: string,) {
     // if (!this.allowKeys.includes(key)) {
     //   return this.fail('非法操作');
     // }
     // 关键参数校验
     // 数据落库
     // 回调
-    console.log(business);
-    return this.ok('hello, cool-admin!!!');
+    console.log('getPayInForOrderNo-=-=-=-111',orderNo);
+    return this.ok(await this.orderService.rechargeOrder({ orderNo: orderNo,channel:'SUNPAY'}));
   }
   /**
    * 取消订单
    * /api/v3/Fiat/PayIn/{orderNo}/Cancel
    */
   @Post('/PayIn/:orderNo/Cancel', { summary: '取消订单' })
-  async cancelPayInOrderForOrderNo(@Body(ALL) business: BusinessEntity) {
+  async cancelPayInOrderForOrderNo(@Param('orderNo') orderNo: string) {
     // if (!this.allowKeys.includes(key)) {
     //   return this.fail('非法操作');
     // }
     // 关键参数校验
     // 数据落库
     // 回调
-    console.log(business);
-    return this.ok('hello, cool-admin!!!');
+    console.log('cancelPayInOrderForOrderNo-=-=-=111',orderNo);
+    return this.ok(await this.orderService.rechargeOrderCancel({orderNo:orderNo}));
   }
   // /**
   //  * TODO 创建订单回调通知

+ 14 - 0
src/modules/payment/adapter/sunpay.adapter.ts

@@ -385,11 +385,25 @@ export class SunPayAdapter implements ChannelAdapter {
     );
   }
   async payIn(params: any = {}) {
+    console.log('createPayInOrder-=-=payIn-=-=333',params);
     return this.request('POST', '/Fiat/PayIn', params);
   }
+  async payInOrder(params:any) {
+    console.log('getPayInForOrderNo-=-=payInOrder-=-=333',params);
+    return this.request('GET', `/Fiat/PayIn/${params.orderNo}`);
+  }
+
+  async payInOrderCancel(params:any) {
+    console.log('cancelPayInOrderForOrderNo-=-=444',params);
+    return this.request('POST', `/Fiat/PayIn/${params.orderNo}/Cancel`);
+  }
+
   async payOut(params: any = {}) {
     return this.request('POST', '/Fiat/PayOut', params);
   }
+  async payOutOrder(orderNo: string) {
+    return this.request('GET', `/Fiat/PayOut/${orderNo}`);
+  }
 
   async confirmPayOut(orderNo: string) {
     return this.request('POST', `/Fiat/PayOut/${orderNo}/Confirm`);

+ 4 - 0
src/modules/payment/controller/admin/order.ts

@@ -29,6 +29,10 @@ export class OrderController extends BaseController {
   async recharge(@Body() params: any) {
     return this.orderService.recharge(params);
   }
+  @Post('/rechargeOrder')
+  async rechargeOrder(@Body() params: any) {
+    return this.orderService.rechargeOrder(params);
+  }
   // 提现
   @Post('/withdraw')
   async withdraw(@Body() params: any) {

+ 6 - 0
src/modules/payment/interface/channel.adapter.ts

@@ -122,8 +122,14 @@ export interface ChannelAdapter {
   deleteBeneficiaryAddress(params: any): Promise<any>;
   // 法币入金
   payIn(params: any): Promise<any>;
+  // 法币入金订单查询
+  payInOrder(params: any): Promise<any>;
+    // 法币入金订单取消
+  payInOrderCancel(params: any): Promise<any>;
   // 法币出金
   payOut(params: any): Promise<any>;
+  // 法币出金订单查询
+  payOutOrder(params: any): Promise<any>;
   // 确认出金
   confirmPayOut(orderNo: string): Promise<any>;
   // 数字货币入金

+ 49 - 1
src/modules/payment/service/order.ts

@@ -48,12 +48,60 @@ export class OrderService extends BaseService {
   @Config(ALL)
   config;
 
+  private _isOpenApi: boolean = true;
+
+  async getMerchant(id) {
+    let merchant: MerchantEntity;
+    if (this._isOpenApi) {
+      merchant = await this.merchantEntity.findOneBy({
+        id: id,
+      });
+    } else {
+      merchant = this.ctx.admin.merchant
+    }
+    return merchant
+  }
+
+  getMerchantId(params) {
+    let merchantId;
+    if (this._isOpenApi) {
+      merchantId = params.out_user_id;
+    } else {
+      const { merchant } = this.ctx.admin;
+      merchantId = merchant.id;
+    }
+    return merchantId
+  }
+
+  setIsOpenApi(payload = false) {
+    console.log('setIsOpenApi-=-=',payload)
+    this._isOpenApi = payload
+  }
+
+
   /**
    * 充值
    */
   async recharge(params) {
-    return this.paymentService.setChannel(params.channel).payIn(params);
+    console.log('createPayInOrder-=-=payIn-=-=111',params);
+    return this.paymentService.setChannel(params.channel || 'SUNPAY').payIn(params);
   }
+
+    /**
+   * 查询入金订单
+   */
+    async rechargeOrder(params) {
+      console.log('getPayInForOrderNo-=-=-=-222',params);
+      return this.paymentService.setChannel(params.channel || 'SUNPAY').payInOrder(params);
+    }
+
+      /**
+   * 取消入金订单
+   */
+      async rechargeOrderCancel(params) {
+        console.log('cancelPayInOrderForOrderNo-=-=-=-222',params);
+        return this.paymentService.setChannel(params.channel || 'SUNPAY').payInOrderCancel(params);
+      }
   /**
    * 出金
    */

+ 21 - 1
src/modules/payment/service/payment.ts

@@ -117,13 +117,33 @@ export class PaymentService extends BaseService {
     return adapter.deleteBeneficiaryAddress(params);
   }
   async payIn(params: any) {
-    const adapter = this.getChannelAdapter(this.channel);
+    console.log('createPayInOrder-=-=payIn-=-=222',params);
+    const adapter = this.getChannelAdapter(this.channel || 'SUNPAY');
     return adapter.payIn(params);
   }
+
+  async payInOrder(params: any) {
+    console.log('getPayInForOrderNo-=-=payIn-=-=222',params);
+    const adapter = this.getChannelAdapter(this.channel || 'SUNPAY');
+    return adapter.payInOrder(params);
+  }
+
+  async payInOrderCancel(params: any) {
+    console.log('cancelPayInOrderForOrderNo-=-=333',params);
+    const adapter = this.getChannelAdapter(this.channel || 'SUNPAY');
+    return adapter.payInOrderCancel(params);
+  }
+
+
   async payOut(params: any) {
     const adapter = this.getChannelAdapter(this.channel);
     return adapter.payOut(params);
   }
+
+  async payOutOrder(params: any) {
+    const adapter = this.getChannelAdapter(this.channel);
+    return adapter.payOutOrder(params);
+  }
   async confirmPayOut(orderNo: string) {
     const adapter = this.getChannelAdapter(this.channel);
     return adapter.confirmPayOut(orderNo);