V2TradeOnlinepaymentWithholdpayRequestDemo.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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/V2TradeOnlinepaymentWithholdpayRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2TradeOnlinepaymentWithholdpayRequest;
  14. // 2.组装请求参数
  15. $request = new V2TradeOnlinepaymentWithholdpayRequest();
  16. // 请求日期
  17. $request->setReqDate(date("Ymd"));
  18. // 请求流水号
  19. $request->setReqSeqId(date("YmdHis").mt_rand());
  20. // 商户号
  21. $request->setHuifuId("6666000109812884");
  22. // 异步通知地址
  23. $request->setNotifyUrl("http://www.chinapnr.com/");
  24. // 订单金额
  25. $request->setTransAmt("0.01");
  26. // 绑卡id
  27. $request->setCardBindId("10024597199");
  28. // 用户客户号
  29. $request->setUserHuifuId("6666000109818115");
  30. // 商品描述
  31. $request->setGoodsDesc("代扣test");
  32. // 风控信息
  33. $request->setRiskCheckData(getRiskCheckData());
  34. // 设备信息数据
  35. $request->setTerminalDeviceData(getTerminalDeviceData());
  36. // 银行扩展数据
  37. $request->setExtendPayData(getExtendPayData());
  38. // 代扣类型
  39. $request->setWithholdType("2");
  40. // 设置非必填字段
  41. $extendInfoMap = getExtendInfos();
  42. $request->setExtendInfo($extendInfoMap);
  43. // 3. 发起API调用
  44. $client = new BsPayClient();
  45. $result = $client->postRequest($request);
  46. if (!$result || $result->isError()) { //失败处理
  47. var_dump($result -> getErrorInfo());
  48. } else { //成功处理
  49. var_dump($result);
  50. }
  51. /**
  52. * 非必填字段
  53. *
  54. */
  55. function getExtendInfos() {
  56. // 设置非必填字段
  57. $extendInfoMap = array();
  58. // 备注
  59. $extendInfoMap["remark"]= "reamrk123";
  60. // 订单失效时间
  61. $extendInfoMap["time_expire"]= "20221212121212";
  62. // 分账对象
  63. // $extendInfoMap["acct_split_bunch"]= getAcctSplitBunch();
  64. // 账户号
  65. // $extendInfoMap["acct_id"]= "";
  66. return $extendInfoMap;
  67. }
  68. function getRiskCheckData() {
  69. $dto = array();
  70. // 基站地址经纬度、基站地址、IP地址三组信息至少填写一组;&lt;br/&gt;【mcc】+【mnc】+【location_cd】+【lbs_num】&lt;br/&gt;- mcc:移动国家代码,460代表中国;3位长&lt;br/&gt;- mnc:移动网络号码;2位长;&lt;br/&gt;- location_cd:位置区域码,16进制,5位长&lt;br/&gt;- lbs_num:基站编号,16进制,5位长&lt;br/&gt;- 注意若位数不足用空格补足;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:460001039217563&lt;/font&gt;,460(mcc), 00(mnc),10392(location_cd), 17563(lbs_num)
  71. $dto["base_station"] = "";
  72. // ip地址经纬度、基站地址、IP地址三组信息至少填写一组;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:172.28.52.52&lt;/font&gt;
  73. $dto["ip_addr"] = "192.168.1.1";
  74. // 纬度纬度整数位不超过2位,小数位不超过6位。格式为:+表示北纬,-表示南纬。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:+37.12&lt;/font&gt;;&lt;br/&gt;经纬度、基站地址、IP地址三组信息至少填写一组
  75. $dto["latitude"] = "";
  76. // 经度经度整数位不超过3位,小数位不超过5位;格式为:+表示东经,-表示西经。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:-121.213&lt;/font&gt;;&lt;br/&gt;经纬度、基站地址、IP地址三组信息至少填写一组
  77. $dto["longitude"] = "";
  78. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  79. }
  80. function getTerminalDeviceData() {
  81. $dto = array();
  82. // 交易设备ip
  83. $dto["device_ip"] = "172.31.31.145";
  84. // 设备类型
  85. $dto["device_type"] = "1";
  86. // 交易设备gps
  87. // $dto["device_gps"] = "";
  88. // 交易设备iccid
  89. // $dto["device_icc_id"] = "";
  90. // 交易设备imei
  91. // $dto["device_imei"] = "";
  92. // 交易设备imsi
  93. // $dto["device_imsi"] = "";
  94. // 交易设备mac
  95. // $dto["device_mac"] = "";
  96. // 交易设备wifimac
  97. // $dto["device_wifi_mac"] = "";
  98. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  99. }
  100. function getAcctInfos() {
  101. $dto = array();
  102. // 支付金额
  103. // $dto["div_amt"] = "";
  104. // 商户号
  105. // $dto["huifu_id"] = "";
  106. $dtoList = array();
  107. array_push($dtoList, $dto);
  108. return $dtoList;
  109. }
  110. function getAcctSplitBunch() {
  111. $dto = array();
  112. // 分账信息列表
  113. // $dto["acct_infos"] = getAcctInfos();
  114. return $dto;
  115. }
  116. function getExtendPayData() {
  117. $dto = array();
  118. // 业务种类
  119. $dto["biz_tp"] = "012345";
  120. // 商品简称
  121. $dto["goods_short_name"] = "看看";
  122. // 网关支付受理渠道
  123. // $dto["gw_chnnl_tp"] = "test";
  124. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  125. }