V2TradeAcctpaymentRefundRequestDemo.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * 余额支付退款 - 示例
  4. *
  5. * @author sdk-generator
  6. * @Description
  7. */
  8. namespace BsPayDemo;
  9. // 1. 资源及配置加载
  10. require_once dirname(__FILE__) . "/loader.php";
  11. require_once dirname(__FILE__). "/../BsPaySdk/request/V2TradeAcctpaymentRefundRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2TradeAcctpaymentRefundRequest;
  14. // 2.组装请求参数
  15. $request = new V2TradeAcctpaymentRefundRequest();
  16. // 请求流水号
  17. $request->setReqSeqId(date("YmdHis").mt_rand());
  18. // 请求日期
  19. $request->setReqDate(date("Ymd"));
  20. // 商户号
  21. $request->setHuifuId("6666000108854952");
  22. // 原余额支付请求日期
  23. $request->setOrgReqDate("20211021");
  24. // 退款金额
  25. $request->setOrdAmt("0.01");
  26. // 设置非必填字段
  27. $extendInfoMap = getExtendInfos();
  28. $request->setExtendInfo($extendInfoMap);
  29. // 3. 发起API调用
  30. $client = new BsPayClient();
  31. $result = $client->postRequest($request);
  32. if (!$result || $result->isError()) { //失败处理
  33. var_dump($result -> getErrorInfo());
  34. } else { //成功处理
  35. var_dump($result);
  36. }
  37. /**
  38. * 非必填字段
  39. *
  40. */
  41. function getExtendInfos() {
  42. // 设置非必填字段
  43. $extendInfoMap = array();
  44. // 备注
  45. $extendInfoMap["remark"]= "1234567890";
  46. // 原余额支付请求流水号
  47. $extendInfoMap["org_req_seq_id"]= "202110210012100005";
  48. // 原余额支付支付全局流水号
  49. $extendInfoMap["org_hf_seq_id"]= "";
  50. // 分账对象
  51. // $extendInfoMap["acct_split_bunch"]= getAcctSplitBunch();
  52. // 安全信息
  53. $extendInfoMap["risk_check_data"]= getRiskCheckData();
  54. return $extendInfoMap;
  55. }
  56. function getAcctInfos() {
  57. $dto = array();
  58. // 退款金额
  59. // $dto["div_amt"] = "test";
  60. // 退款方ID
  61. // $dto["huifu_id"] = "test";
  62. $dtoList = array();
  63. array_push($dtoList, $dto);
  64. return $dtoList;
  65. }
  66. function getAcctSplitBunch() {
  67. $dto = array();
  68. // 退账明细
  69. // $dto["acct_infos"] = getAcctInfos();
  70. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  71. }
  72. function getRiskCheckData() {
  73. $dto = array();
  74. // 转账原因
  75. $dto["transfer_type"] = "04";
  76. // 产品子类
  77. $dto["sub_product"] = "卡券推广类";
  78. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  79. }