浏览代码

feat: 利润拦截测试

max 4 月之前
父节点
当前提交
b9b355c073
共有 1 个文件被更改,包括 144 次插入4 次删除
  1. 144 4
      src/modules/api/service/webhook.ts

+ 144 - 4
src/modules/api/service/webhook.ts

@@ -31,6 +31,12 @@ export class OpenApiWebhookService extends BaseService {
   logger: ILogger;
 
   async easypayWebhook(params, type: string) {
+    if (type !== 'webhook_notification') {
+      this.ctx.status = 400;
+      this.ctx.body = {};
+      return;
+    }
+    await this.waitByTime(2200);
     try {
       this.logger.info(
         `easypay的webhook_${type}: params${JSON.stringify(params)}`
@@ -48,14 +54,139 @@ export class OpenApiWebhookService extends BaseService {
       // 收单支付成功通知 acquiring_payment_success
       // 收单支付成功通知 acquiring_refund_success
       // 收单退款失败通知 acquiring_refund_failed
-      // 入账成功       deposit_success
-      // 换汇成功       exchange_success
       // 换汇失败       exchange_failed
-      // 付款成功       payment_success
       // 付款失败       payment_failed
       // 付款银行退回    payment_refunded
-      // 转账成功        transfer_success
       // 转账失败        transfer_failed
+      
+      //  const {type} = params
+      switch (params.type) {
+        case 'deposit_success':
+          // 入账成功       deposit_success
+          // 如果入账成功,则收取手续费
+          /* 
+          {
+            "type": "deposit_success",
+            "data": {
+                "id": "29091e03092c42a681f0921118925e84",
+                "bank_account_id": "262874c798b1452682acd96fb0317bae",
+                "order_no": "20250310155503589841",
+                "account_id": "2bd64372841a54bf8b41f879ff07884b",
+                "bic_number": null,
+                "account_number": "79765000155",
+                "inward_amount": 1000,
+                "fee": 0,
+                "amount": 1000,
+                "currency": "GBP",
+                "payer": "付款信息 格式:{sender.name};{sender.address};{sender.country};{sender.account_number} or {sender.iban};{sender.bic};{sender.routing_code};附言",
+                "comment": "附言",
+                "payment_type": "SWIFT",
+                "order_type": "DEPOSIT",
+                "payment_id": null,
+                "clearing_system": null,
+                "status": "SUCCESS",
+                "create_time": "2025-03-10T15:55:04+08:00",
+                "update_time": "2025-03-10T15:55:04+08:00",
+                "completed_time": "2025-03-10T15:55:03+08:00"
+            }
+          }
+          */
+          break;
+        case 'exchange_success':
+          // 换汇成功       exchange_success
+          // 如果换汇成功,则收取手续费
+          /* 
+          params
+          {
+            "type": "exchange_success",
+            "data": {
+                "id": "13ea4d84b92a4070b55dfafadcafcca3",
+                "order_no": "20250310161942842514",
+                "request_id": null,
+                "reference": null,
+                "account_id": "2bd64372841a54bf8b41f879ff07884b",
+                "sell_currency": "USD",
+                "sell_amount": 2577,
+                "exchange_rate": 0.776169,
+                "buy_amount": 2000,
+                "buy_currency": "GBP",
+                "reason": null,
+                "create_time": "2025-03-10T16:19:42+08:00",
+                "update_time": "2025-03-10T16:20:11+08:00",
+                "completed_time": "2025-03-10T16:20:11+08:00",
+                "status": "SUCCESS",
+                "details_url": null,
+                "detail_status": null,
+                "details_reason": [
+
+                ]
+            }
+          }
+          */
+
+          break;
+        case 'payment_success':
+          // 付款成功       payment_success
+          // 如果付款成功,则收取手续费
+          /* 
+          params
+          {
+            "type": "string",
+            "data": {
+                "id": "string",
+                "order_no": "string",
+                "request_id": "string",
+                "reference": "string",
+                "account_id": "string",
+                "currency": "string",
+                "amount": 0,
+                "payer": {},
+                "beneficiary": {},
+                "exchange_rate": 0,
+                "fee": 0,
+                "fee_currency": "string",
+                "outward_currency": "string",
+                "outward_amount": 0,
+                "comment": "string",
+                "purpose": "string",
+                "status": "PENDING",
+                "reason": "string",
+                "source_of_funds ": "INVESTMENT",
+                "create_time": "string",
+                "update_time": "string",
+                "completed_time": "string"
+            }
+          }
+          */
+
+          break;
+        case 'transfer_success':
+          // 转账成功       transfer_success
+          // 如果付款成功,则收取手续费
+          /* 
+          params
+          {
+            "type": "string",
+            "data": {
+                "id": "string",
+                "order_no": "string",
+                "request_id": "string",
+                "reference": "string",
+                "from_account_id": "string",
+                "to_account_id": "string",
+                "amount": 0,
+                "currency": "string",
+                "purpose": "string",
+                "status": "PENDING",
+                "reason": "string",
+                "create_time": "string",
+                "update_time": "string",
+                "completed_time": "string"
+            }
+          }
+          */
+          break;
+      }
     } catch (err) {
       this.logger.error(
         `easypay的webhook error ${type}: params${JSON.stringify(params)}`
@@ -65,4 +196,13 @@ export class OpenApiWebhookService extends BaseService {
     this.ctx.body = {};
     return;
   }
+
+  // 定时器
+  waitByTime(settime = 100) {
+    return new Promise((resolve: any) => {
+      setTimeout(() => {
+        resolve();
+      }, settime);
+    });
+  }
 }