PaymentApiServiceController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.webchat.pay.controller;
  2. import com.webchat.common.bean.APIResponseBean;
  3. import com.webchat.common.bean.APIResponseBeanUtil;
  4. import com.webchat.domain.dto.payment.PaymentTransRequestDTO;
  5. import com.webchat.pay.config.annotation.ValidateAccessPaymentPermission;
  6. import com.webchat.pay.service.PaymentApiService;
  7. import com.webchat.rmi.pay.PaymentApiServiceClient;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.RequestBody;
  11. import org.springframework.web.bind.annotation.RequestHeader;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import java.math.BigDecimal;
  14. @RestController
  15. public class PaymentApiServiceController implements PaymentApiServiceClient {
  16. @Autowired
  17. private PaymentApiService paymentApiService;
  18. /**
  19. * 获取所有交易请求鉴权token
  20. *
  21. * @param appId
  22. * @param accessKey
  23. * @param secretKey
  24. * @param timestamp
  25. * @param signature
  26. * @param logId
  27. * @return
  28. */
  29. @Override
  30. public APIResponseBean<String> accessToken(@RequestHeader(name = "app-id") Long appId,
  31. @RequestHeader(name = "access-key") String accessKey,
  32. @RequestHeader(name = "secret-key") String secretKey,
  33. @RequestHeader Long timestamp,
  34. @RequestHeader String signature,
  35. @RequestHeader(name = "log-id") String logId) {
  36. String accessToken = paymentApiService.token(appId, accessKey, secretKey, timestamp, signature, logId);
  37. return APIResponseBeanUtil.success(accessToken);
  38. }
  39. /**
  40. * 获取分布式交易事务id
  41. *
  42. * 应用场景:如果上游接入方支付成功后业务异常,需要回滚交易数据
  43. *
  44. * @param token
  45. * @param logId
  46. * @return
  47. */
  48. @ValidateAccessPaymentPermission
  49. @Override
  50. public APIResponseBean<String> transId(@RequestHeader(name = "access-token") String accessToken,
  51. @RequestHeader(name = "log-id") String logId) {
  52. return null;
  53. }
  54. /**
  55. * 真实交易
  56. * @param paymentTransRequest
  57. * @param token
  58. * @param transId
  59. * @param logId
  60. * @return
  61. */
  62. @ValidateAccessPaymentPermission
  63. @Override
  64. public APIResponseBean<Boolean> doTrans(@RequestBody PaymentTransRequestDTO paymentTransRequest,
  65. @RequestHeader(name = "access-token") String accessToken,
  66. @RequestHeader(name = "log-id") String logId,
  67. @RequestHeader(name = "trans-id") String transId) {
  68. return null;
  69. }
  70. /**
  71. * 交易回滚
  72. *
  73. * @param token
  74. * @param transId 回滚事务id
  75. * @param logId
  76. * @return
  77. */
  78. @ValidateAccessPaymentPermission
  79. @Override
  80. public APIResponseBean<Boolean> rollback(@RequestHeader(name = "access-token") String accessToken,
  81. @RequestHeader(name = "log-id") String logId,
  82. @RequestHeader(name = "trans-id") String transId) {
  83. return null;
  84. }
  85. /**
  86. * 查询账户余额
  87. *
  88. * @param userId
  89. * @param logId
  90. * @return
  91. */
  92. @ValidateAccessPaymentPermission
  93. @Override
  94. public APIResponseBean<BigDecimal> balance(@PathVariable String userId,
  95. @RequestHeader(name = "access-token") String accessToken,
  96. @RequestHeader(name = "log-id") String logId) {
  97. return null;
  98. }
  99. }