LedgerService.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\Lakala\Service;
  4. use SixShop\Lakala\Config;
  5. use SixShop\Lakala\OpenAPISDK\V2\Api\V2LakalaApi;
  6. use SixShop\Lakala\OpenAPISDK\V2\Model\V2ModelRequest;
  7. use function SixShop\Core\throw_logic_exception;
  8. /**
  9. * LedgerService
  10. */
  11. class LedgerService
  12. {
  13. private V2LakalaApi $v2LakalaApi;
  14. public function __construct(private Config $config)
  15. {
  16. $this->v2LakalaApi = new V2LakalaApi($config->getV2Config());
  17. }
  18. /**
  19. * 分账接收方创建申请
  20. *
  21. * @link https://o.lakala.com/#/home/document/detail?id=382
  22. */
  23. public function applyLedgerReceiver(array $reqData, string $version = '1.0'):object
  24. {
  25. $request = new V2ModelRequest();
  26. $reqData['version'] = $version;
  27. $request->setReqData($reqData);
  28. $response = $this->v2LakalaApi->tradeApi('/api/v2/mms/openApi/ledger/applyLedgerReceiver', $request);
  29. if ($response->getRetCode() == '000000') {
  30. return $response->getRespData();
  31. } else {
  32. throw_logic_exception(
  33. msg:$response->getRetMsg(),
  34. code: (int)$response->getRetCode(),
  35. data: $response->getRespData(),
  36. );
  37. }
  38. }
  39. /**
  40. * 分账接收方信息变更
  41. *
  42. * @link https://o.lakala.com/#/home/document/detail?id=383
  43. */
  44. public function modifyLedgerReceiver(array $reqData, string $version = '1.0')
  45. {
  46. $request = new V2ModelRequest();
  47. $reqData['version'] = $version;
  48. $request->setReqData($reqData);
  49. $response = $this->v2LakalaApi->tradeApi('/api/v2/mms/openApi/ledger/modifyLedgerReceiver', $request);
  50. if ($response->getRetCode() == '000000') {
  51. return $response->getRespData();
  52. } else {
  53. throw_logic_exception(
  54. msg:$response->getRetMsg(),
  55. code: (int)$response->getRetCode(),
  56. data: $response->getRespData(),
  57. );
  58. }
  59. }
  60. /**
  61. * 分账接收方详情查询
  62. *
  63. * @param string $orderNo 订单号
  64. * @param string $receiverNo 接收方编号
  65. * @param string $orgCode 机构编号
  66. * @param string $version 接口版本号 默认1.0
  67. *
  68. * @link https://o.lakala.com/#/home/document/detail?id=385
  69. */
  70. public function queryReceiverDetail(string $orderNo, string $receiverNo, string $orgCode = '1', string $version = '1.0')
  71. {
  72. $request = new V2ModelRequest();
  73. $request->setReqData([
  74. 'version' => $version,
  75. 'orderNo' => $orderNo,
  76. 'orgCode' => $orgCode,
  77. 'receiverNo' => $receiverNo,
  78. ]);
  79. $response = $this->v2LakalaApi->tradeApi('/api/v2/mms/openApi/ledger/queryReceiverDetail', $request);
  80. if ($response->getRetCode() == '000000') {
  81. return $response->getRespData();
  82. } else {
  83. throw_logic_exception(
  84. msg:$response->getRetMsg(),
  85. code: (int)$response->getRetCode(),
  86. data: $response->getRespData(),
  87. );
  88. }
  89. }
  90. /**
  91. * 分账关系绑定申请
  92. *
  93. * @param array $reqData
  94. * @param string $version
  95. * @link https://o.lakala.com/#/home/document/detail?id=386
  96. */
  97. public function applyBind(array $reqData, string $version = '1.0'): object
  98. {
  99. $request = new V2ModelRequest();
  100. $reqData['version'] = $version;
  101. $reqData['merCupNo'] = $this->config->merchant_no;
  102. $reqData['retUrl'] = $this->config->notify_url;
  103. $request->setReqData($reqData);
  104. $response = $this->v2LakalaApi->tradeApi('/api/v2/mms/openApi/ledger/applyBind', $request);
  105. if ($response->getRetCode() == '000000') {
  106. return $response->getRespData();
  107. } else {
  108. throw_logic_exception(
  109. msg:$response->getRetMsg(),
  110. code: (int)$response->getRetCode(),
  111. data: $response->getRespData(),
  112. );
  113. }
  114. }
  115. /**
  116. * 分账关系申请列表查询
  117. *
  118. * @link https://o.lakala.com/#/home/document/detail?id=939
  119. */
  120. public function queryBindApplyList(array $reqData, int $pageNum = 1, int $pageSize = 10, string $version = '1.0'):object
  121. {
  122. $request = new V2ModelRequest();
  123. $reqData = array_merge($reqData, [
  124. 'version' => $version,
  125. 'pageNum' => $pageNum,
  126. 'pageSize' => $pageSize,
  127. 'merCupNo' => $this->config->merchant_no,
  128. ]);
  129. $request->setReqData($reqData);
  130. $response = $this->v2LakalaApi->tradeApi('/api/v2/mms/openApi/ledger/openWeb/listRelationApply', $request);
  131. if ($response->getRetCode() == '000000') {
  132. return $response->getRespData();
  133. } else {
  134. throw_logic_exception(
  135. msg:$response->getRetMsg(),
  136. code: (int)$response->getRetCode(),
  137. data: $response->getRespData(),
  138. );
  139. }
  140. }
  141. }