AgentTrans.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. namespace addons\YunfastPay\common\services\trans\nocash;
  3. use addons\YunfastPay\common\services\trans\TransAbstract;
  4. /**
  5. * 代付
  6. * AgentTrans class
  7. * @package addons\YunfastPay\common\services\trans\nocash
  8. * @see https://yunfastpay.com/#/interface/qb
  9. */
  10. class AgentTrans extends TransAbstract
  11. {
  12. /**
  13. * 是否默认审核 1:自动审核,目前固定1
  14. *
  15. * @var int
  16. */
  17. protected $checkStatus = 1;
  18. /**
  19. * 收款卡号
  20. *
  21. * @var string
  22. */
  23. protected $settleAcct;
  24. /**
  25. * 收款户名
  26. *
  27. * @var string
  28. */
  29. protected $settleAcctNm;
  30. /**
  31. * 账户类型 1:对私,2:对公
  32. *
  33. * @var integer
  34. */
  35. protected $acctType = 1;
  36. /**
  37. * 代付用途类型
  38. *
  39. * @var int
  40. */
  41. protected $adddata1;
  42. /**
  43. * 交易码
  44. *
  45. * @return string
  46. */
  47. public function getTrscode(): string
  48. {
  49. return 'TRANS0108';
  50. }
  51. /**
  52. * 费率通道
  53. *
  54. * @return integer
  55. */
  56. public function getChanelType(): int
  57. {
  58. return 1;
  59. }
  60. /**
  61. * 产品编号
  62. *
  63. * @return string
  64. */
  65. public function getProCd(): string
  66. {
  67. return 'agent';
  68. }
  69. /**
  70. * 代付
  71. *
  72. * @param string $outOrderId 外部订单号
  73. * @param float $transAmt 交易金额
  74. * @param string $settleAcct 收款卡号
  75. * @param string $settleAcctNm 收款户名
  76. */
  77. public function __construct(
  78. string $outOrderId,
  79. float $transAmt,
  80. string $settleAcct,
  81. string $settleAcctNm,
  82. string $outOrderDesc = ''
  83. )
  84. {
  85. $this->outOrderId = $outOrderId;
  86. $this->transAmt = $transAmt;
  87. $this->settleAcct = $settleAcct;
  88. $this->settleAcctNm = $settleAcctNm;
  89. $outOrderDesc && $this->outOrderDesc = $outOrderDesc;
  90. }
  91. /**
  92. * 设置账户类型
  93. *
  94. * @param integer $acctType
  95. * @return void
  96. */
  97. public function setAcctType(int $acctType)
  98. {
  99. $this->acctType = in_array($acctType, [1, 2])
  100. ? $acctType
  101. : $this->acctType;
  102. }
  103. /**
  104. * 账户类型
  105. *
  106. * @return int
  107. */
  108. public function getAcctType()
  109. {
  110. return $this->acctType;
  111. }
  112. /**
  113. * 是否默认审核
  114. *
  115. * @return int
  116. */
  117. public function getCheckStatus()
  118. {
  119. return $this->checkStatus;
  120. }
  121. /**
  122. * 返回回调处理类型 ['pay', 'agent'] 默认pay 代付agent
  123. *
  124. * @return string
  125. */
  126. public function getNotifyType()
  127. {
  128. return 'agent';
  129. }
  130. /**
  131. * 获取请求参数
  132. *
  133. * @param string $mchtCd
  134. * @return array
  135. */
  136. public function getTransData(string $mchtCd): array
  137. {
  138. $reqData['acctType'] = $this->getAcctType();
  139. $reqData['trscode'] = $this->getTrscode();
  140. $reqData['mchtCd'] = $mchtCd;
  141. $reqData['checkStatus'] = $this->getCheckStatus();
  142. $reqData['outOrderId'] = $this->outOrderId;
  143. $reqData['transAmt'] = $this->transAmt;
  144. $reqData['proCd'] = $this->getProCd();
  145. $reqData['chanelType'] = $this->getChanelType();
  146. $reqData['settleAcct'] = $this->settleAcct;
  147. $reqData['settleAcctNm'] = $this->settleAcctNm;
  148. $this->outOrderDesc && $reqData['outOrderDesc'] = $this->outOrderDesc;
  149. $this->adddata1 && $reqData['adddata1'] = $this->adddata1;
  150. return $reqData;
  151. }
  152. }