open.ts 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. import {
  2. Provide,
  3. Body,
  4. Inject,
  5. Post,
  6. ALL,
  7. Logger,
  8. Get,
  9. Param,
  10. Files,
  11. Fields,
  12. } from '@midwayjs/decorator';
  13. import {
  14. CoolController,
  15. BaseController,
  16. CoolTag,
  17. CoolUrlTag,
  18. TagTypes,
  19. } from '@cool-midway/core';
  20. import { PayService } from '../../service/pay';
  21. import { BaseSysParamService } from '../../../base/service/sys/param';
  22. import { Context } from '@midwayjs/koa';
  23. import { OrderService } from '../../service/order';
  24. import { ChannelService } from '../../service/channel';
  25. import { ILogger } from '@midwayjs/logger';
  26. import { WithdrawService } from '../../service/withdraw';
  27. import { KycService } from '../../service/kyc';
  28. import { RepayService } from '../../service/repay';
  29. import { WhiteIpMiddleware } from '../../middleware/whiteIp';
  30. import { KycOpenService } from '../../service/openKyc';
  31. @Provide()
  32. @CoolController()
  33. @CoolUrlTag()
  34. export class PayOpenController extends BaseController {
  35. @Inject()
  36. payService: PayService;
  37. @Inject()
  38. ctx: Context;
  39. @Inject()
  40. baseSysParamService: BaseSysParamService;
  41. @Inject()
  42. orderService: OrderService;
  43. @Inject()
  44. withdrawService: WithdrawService;
  45. @Inject()
  46. channelService: ChannelService;
  47. @Inject()
  48. kycService: KycService;
  49. @Inject()
  50. kycOpenService: KycOpenService;
  51. @Inject()
  52. repayService: RepayService
  53. @Logger()
  54. logger: ILogger;
  55. @CoolTag(TagTypes.IGNORE_TOKEN)
  56. @Post('/order', { summary: '代收下单' })
  57. public async order(@Body(ALL) payload: any) {
  58. return this.ok(await this.payService.order(payload));
  59. }
  60. @CoolTag(TagTypes.IGNORE_TOKEN)
  61. @Post('/query', { summary: '代收查询' })
  62. public async query(@Body(ALL) payload: any) {
  63. return this.ok(await this.payService.query(payload));
  64. }
  65. @CoolTag(TagTypes.IGNORE_TOKEN)
  66. @Post('/withdraw', { summary: '发起代付', middleware: [WhiteIpMiddleware] })
  67. public async withdraw(@Body(ALL) payload: any) {
  68. return this.ok(await this.repayService.withdraw(payload));
  69. }
  70. @CoolTag(TagTypes.IGNORE_TOKEN)
  71. @Post('/withdrawQuery', { summary: '代付查询', middleware: [WhiteIpMiddleware] })
  72. public async withdrawQuery(@Body(ALL) payload: any) {
  73. return this.ok(await this.repayService.queryWithdraw(payload));
  74. }
  75. @CoolTag(TagTypes.IGNORE_TOKEN)
  76. @Post('/queryBalance', { summary: '余额查询', middleware: [WhiteIpMiddleware] })
  77. public async queryBalance(@Body(ALL) payload: any) {
  78. return this.ok(await this.repayService.queryBalance(payload));
  79. }
  80. @CoolTag(TagTypes.IGNORE_TOKEN)
  81. @Post('/notifyTest', { summary: '回调通知' })
  82. public async notifyTest(@Body(ALL) payload: any) {
  83. this.logger.error('收到测试回调数据', JSON.stringify(payload));
  84. console.log('收到测试回调数据', payload);
  85. this.ctx.body = 'success';
  86. }
  87. @CoolTag(TagTypes.IGNORE_TOKEN)
  88. @Post('/SunCard/notifyOrder', { summary: '交易订单回调通知' })
  89. public async notifySunCardOrderGet(@Body(ALL) payload: any) {
  90. const headers = this.ctx.headers;
  91. this.logger.error('SunCard收到交易订单回调数据', JSON.stringify(payload), headers);
  92. await this.orderService.handleNotify('SUN_CARD', payload, headers);
  93. this.ctx.body = {
  94. "is_success": "true",
  95. "message": "success"
  96. };
  97. }
  98. @CoolTag(TagTypes.IGNORE_TOKEN)
  99. @Post('/hambit/bra/notifyOrder', { summary: '巴西交易订单回调通知' })
  100. public async hambitBraNotifyOrderGet(@Body(ALL) payload: any) {
  101. const headers = this.ctx.headers;
  102. this.logger.error('hambit收到交易订单回调数据', JSON.stringify(payload), headers);
  103. await this.orderService.handleNotify('HB_BRA', payload, headers);
  104. this.ctx.body = {
  105. "code": "200",
  106. "success": "true"
  107. };
  108. }
  109. @CoolTag(TagTypes.IGNORE_TOKEN)
  110. @Post('/hambit/inr/notifyOrder', { summary: '印度交易订单回调通知' })
  111. public async hambitInrNotifyOrderGet(@Body(ALL) payload: any) {
  112. const headers = this.ctx.headers;
  113. this.logger.error('hambit收到交易订单回调数据', JSON.stringify(payload), headers);
  114. await this.orderService.handleNotify('HB_INR', payload, headers);
  115. this.ctx.body = {
  116. "code": "200",
  117. "success": "true"
  118. };
  119. }
  120. @CoolTag(TagTypes.IGNORE_TOKEN)
  121. @Post('/kyc/level', { summary: 'kyc level 查询' })
  122. public async kycLevel(@Body(ALL) payload: any) {
  123. return this.ok(await this.kycService.getLevel(payload.orderNo));
  124. }
  125. @CoolTag(TagTypes.IGNORE_TOKEN)
  126. @Get('/kyc/countries', { summary: 'kyc countries 查询' })
  127. public async kycCountries() {
  128. return this.ok(await this.kycService.getCountries());
  129. }
  130. @CoolTag(TagTypes.IGNORE_TOKEN)
  131. @Post('/kyc/basic', { summary: 'kyc basic 保存' })
  132. public async kycBasic(@Body(ALL) payload: any) {
  133. return this.ok(await this.kycService.createBasic(payload));
  134. }
  135. @CoolTag(TagTypes.IGNORE_TOKEN)
  136. @Post('/kyc/advanced', { summary: 'kyc advanced 保存' })
  137. public async kycAdvanced(@Files() files, @Fields() fields) {
  138. return this.ok(await this.kycService.createAdvanced(fields, files));
  139. }
  140. @CoolTag(TagTypes.IGNORE_TOKEN)
  141. @Post('/kyc/premium', { summary: 'kyc basic 保存' })
  142. public async kycPremium(@Files() files, @Fields() fields) {
  143. return this.ok(await this.kycService.createPremium(fields, files));
  144. }
  145. @CoolTag(TagTypes.IGNORE_TOKEN)
  146. @Post('/kyc/toPay', { summary: 'kyc topay' })
  147. public async kycToPay(@Body(ALL) payload: any) {
  148. return this.ok(await this.kycService.toPay(payload));
  149. }
  150. @CoolTag(TagTypes.IGNORE_TOKEN)
  151. @Post('/kyc/toBaisc', { summary: 'kyc basic 保存' })
  152. public async submitBaisc(@Body(ALL) payload: any) {
  153. return this.ok(await this.kycOpenService.createOpenBasic(payload));
  154. }
  155. @CoolTag(TagTypes.IGNORE_TOKEN)
  156. @Post('/kyc/toAdvanced', { summary: 'kyc advanced 保存' })
  157. public async submitAdvanced(@Files() files, @Fields() fields) {
  158. return this.ok(await this.kycOpenService.createOpenAdvanced(fields, files));
  159. }
  160. @CoolTag(TagTypes.IGNORE_TOKEN)
  161. @Post('/kyc/toPremium', { summary: 'kyc basic 保存' })
  162. public async submitPremium(@Files() files, @Fields() fields) {
  163. return this.ok(await this.kycOpenService.createOpenPremium(fields, files));
  164. }
  165. @CoolTag(TagTypes.IGNORE_TOKEN)
  166. @Post('/kyc/getCustomer', { summary: 'kyc basic 保存' })
  167. public async getCustomer(@Body(ALL) payload: any) {
  168. return this.ok(await this.kycOpenService.getCustomer(payload));
  169. }
  170. }