V2TradePayscorePayPayscorepayRequestDemo.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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/V2TradePayscorePayPayscorepayRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2TradePayscorePayPayscorepayRequest;
  14. // 2.组装请求参数
  15. $request = new V2TradePayscorePayPayscorepayRequest();
  16. // 微信扣款单号
  17. // $request->setOutTradeNo("test");
  18. // 商品描述
  19. // $request->setGoodsDesc("test");
  20. // 商户号
  21. $request->setHuifuId("6666000108854952");
  22. // 安全信息
  23. // $request->setRiskCheckData("test");
  24. // 设置非必填字段
  25. $extendInfoMap = getExtendInfos();
  26. $request->setExtendInfo($extendInfoMap);
  27. // 3. 发起API调用
  28. $client = new BsPayClient();
  29. $result = $client->postRequest($request);
  30. if (!$result || $result->isError()) { //失败处理
  31. var_dump($result -> getErrorInfo());
  32. } else { //成功处理
  33. var_dump($result);
  34. }
  35. /**
  36. * 非必填字段
  37. *
  38. */
  39. function getExtendInfos() {
  40. // 设置非必填字段
  41. $extendInfoMap = array();
  42. // 分账对象
  43. // $extendInfoMap["acct_split_bunch"]= getAcctSplitBunch();
  44. // 扣款登记返回的汇付全局流水号
  45. // $extendInfoMap["deduct_hf_seq_id"]= "";
  46. // 扣款登记创建请求流水号
  47. // $extendInfoMap["deduct_req_seq_id"]= "";
  48. // 是否延迟交易
  49. // $extendInfoMap["delay_acct_flag"]= "";
  50. // 商户回调地址
  51. // $extendInfoMap["notify_url"]= "";
  52. // 交易备注
  53. // $extendInfoMap["remark"]= "";
  54. // 请求日期
  55. $extendInfoMap["req_date"]= date("Ymd");
  56. // 请求流水号
  57. $extendInfoMap["req_seq_id"]= date("YmdHis").mt_rand();
  58. // 设备信息
  59. // $extendInfoMap["terminal_device_info"]= getTerminalDeviceInfo();
  60. // 聚合反扫微信参数集合
  61. // $extendInfoMap["wx_data"]= getWxData();
  62. return $extendInfoMap;
  63. }
  64. function getAcctInfos() {
  65. $dto = array();
  66. // 分账金额
  67. // $dto["div_amt"] = "test";
  68. // 分账商户号
  69. // $dto["huifu_id"] = "test";
  70. $dtoList = array();
  71. array_push($dtoList, $dto);
  72. return $dtoList;
  73. }
  74. function getAcctSplitBunch() {
  75. $dto = array();
  76. // 分账明细
  77. // $dto["acct_infos"] = getAcctInfos();
  78. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  79. }
  80. function getTerminalDeviceInfo() {
  81. $dto = array();
  82. // 设备类型
  83. // $dto["device_type"] = "";
  84. // 交易设备IP
  85. // $dto["device_ip"] = "";
  86. // 交易设备MAC
  87. // $dto["device_mac"] = "";
  88. // 交易设备IMEI
  89. // $dto["device_imei"] = "";
  90. // 交易设备IMSI
  91. // $dto["device_imsi"] = "";
  92. // 交易设备ICCID
  93. // $dto["device_icc_id"] = "";
  94. // 交易设备WIFIMAC
  95. // $dto["device_wifi_mac"] = "";
  96. // 交易设备GPS
  97. // $dto["device_gps"] = "";
  98. // 商户终端应用程序版
  99. // $dto["app_version"] = "";
  100. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  101. }
  102. function getWxData() {
  103. $dto = array();
  104. // 子商户公众账号id
  105. // $dto["sub_appid"] = "";
  106. // 用户标识
  107. // $dto["openid"] = "";
  108. // 子商户用户标识
  109. // $dto["sub_openid"] = "";
  110. // 设备号
  111. // $dto["device_info"] = "";
  112. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  113. }