Selaa lähdekoodia

feat: easypay webhook

max 5 kuukautta sitten
vanhempi
sitoutus
f37cf58997

+ 58 - 0
src/modules/api/controller/webhook.ts

@@ -0,0 +1,58 @@
+import { CoolController, BaseController } from '@cool-midway/core';
+import {
+  ALL,
+  Body,
+  Get,
+  Inject,
+  Param,
+  Post,
+  Provide,
+  Query,
+} from '@midwayjs/decorator';
+import { BusinessEntity } from '../../payment/entity/business';
+import { WalletService } from '../../payment/service/wallet';
+import { EasyPayAdapter } from '../../payment/adapter/easypay.adapter';
+import { OpenApiWebhookService } from '../service/webhook';
+import { Context } from '@midwayjs/koa';
+
+/**
+ * 开放接口的webhook
+ */
+@Provide()
+@CoolController('/api/open')
+export class OpenApiWebhookController extends BaseController {
+  @Inject()
+  openApiWebhookService: OpenApiWebhookService;
+
+  @Inject()
+  ctx: Context;
+
+  /**
+   * easypay webhook
+   * "account_approved",
+   * "account_rejected",
+   * "legal_entity_request_created",
+   * "legal_entity_request_success",
+   * "legal_entity_request_rejected",
+   * "application_success",
+   * "application_failed",
+   * "bank_account_created",
+   * "bank_account_updated",
+   * "exchange_success",
+   * "exchange_failed",
+   * "exchange_details_failed",
+   * "payment_success",
+   * "payment_failed",
+   * "payment_refunded",
+   * "transfer_success",
+   * "transfer_failed",
+   * "acquiring_payment_success",
+   * "acquiring_refund_success",
+   * "acquiring_refund_failed",
+   * "deposit_success"
+   **/
+  @Post('/easypay-webhook/:type', { summary: 'easypay webhook' })
+  async getBanks(@Param('type') type: any, @Body(ALL) params: any, ) {
+    return await this.openApiWebhookService.easypayWebhook(params, this.ctx, type);
+  }
+}

+ 1 - 1
src/modules/api/middleware/authority.ts

@@ -41,7 +41,7 @@ export class BaseAuthorityMiddleware
 
   resolve() {
     return async (ctx: Context, next: NextFunction) => {
-      if (ctx.url.includes('/api/open/sign')) {
+      if (ctx.url.includes('/api/open/sign') || ctx.url.includes('api/open/easypay-webhook')) {
         await next();
         return;
       }

+ 1 - 1
src/modules/api/service/open.ts

@@ -3,7 +3,7 @@ import { ILogger, Init, Inject, Provide } from '@midwayjs/core';
 import { InjectEntityModel } from '@midwayjs/typeorm';
 import { OpenUserEntity } from '../entity/open_user';
 import * as crypto from 'crypto';
-import { In, LessThan, QueryRunner, Repository } from 'typeorm';
+import { LessThan, QueryRunner, Repository } from 'typeorm';
 import {
   OpenPaymentOrderEntity,
   OrderType,

+ 48 - 0
src/modules/api/service/webhook.ts

@@ -0,0 +1,48 @@
+import { BaseService } from '@cool-midway/core';
+import { ILogger, Provide } from '@midwayjs/core';
+import { Inject } from '@midwayjs/decorator';
+import { InjectEntityModel } from '@midwayjs/typeorm';
+import { PayeeAddressEntity } from '../../payment/entity/payee_address';
+import { Repository } from 'typeorm';
+import { CustomerEntity } from '../../payment/entity/customer';
+import { PaymentService } from '../../payment/service/payment';
+import { PayeeEntity } from '../../payment/entity/payee';
+import { SunPayAdapter } from '../../payment/adapter/sunpay.adapter';
+import { Context } from '@midwayjs/koa';
+
+/**
+ * 描述
+ */
+@Provide()
+export class OpenApiWebhookService extends BaseService {
+  @InjectEntityModel(PayeeEntity)
+  payeeEntity: Repository<PayeeEntity>;
+  @InjectEntityModel(CustomerEntity)
+  customerEntity: Repository<CustomerEntity>;
+  @Inject()
+  paymentService: PaymentService;
+
+  @Inject()
+  sunPayAdapter: SunPayAdapter;
+
+  @Inject()
+  ctx;
+
+  @Inject()
+  logger: ILogger;
+
+  async easypayWebhook(params, ctx: Context, type: string) {
+    try {
+      this.logger.info(
+        `easypay的webhook_${type}: ${this.ctx.admin.merchant.mchId}; params${params}`
+      );
+    } catch (err) {
+      this.logger.error(
+        `easypay的webhook error ${type}: ${this.ctx.admin.merchant.mchId}; params${params}`
+      );
+    }
+    this.ctx.status = 200;
+    this.ctx.body = {};
+    return;
+  }
+}

+ 1 - 1
src/modules/base/service/sys/user.ts

@@ -124,7 +124,7 @@ export class BaseSysUserService extends BaseService {
       },
     });
 
-    console.log(128, merchant)
+    // console.log(128, merchant)
     // 如果需要获取关联信息,可以分别查询
     let individualInfo = null;
     let businessInfo = null;

+ 1 - 1
src/modules/payment/job/order.ts

@@ -25,7 +25,7 @@ export class OrderJob implements IJob {
     this.logger.info('处理未完成的订单定时任务开始执行');
     const startTime = Date.now();
     await this.orderService.handleUnfinishedOrder({});
-    await this.openOrderService.handleUnfinishedOrder({});
+    // await this.openOrderService.handleUnfinishedOrder({});
     this.logger.info(
       `处理未完成的订单定时任务结束,耗时:${Date.now() - startTime}ms`
     );