V2TradeOnlinepaymentQuickpayFrontpayRequestDemo.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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/V2TradeOnlinepaymentQuickpayFrontpayRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2TradeOnlinepaymentQuickpayFrontpayRequest;
  14. // 2.组装请求参数
  15. $request = new V2TradeOnlinepaymentQuickpayFrontpayRequest();
  16. // 业务请求流水号
  17. $request->setReqSeqId(date("YmdHis").mt_rand());
  18. // 请求日期
  19. $request->setReqDate(date("Ymd"));
  20. // 商户号
  21. $request->setHuifuId("6666000109812884");
  22. // 订单金额
  23. $request->setTransAmt("0.01");
  24. // 异步通知地址
  25. $request->setNotifyUrl("http://www.baidu.com");
  26. // 银行扩展信息
  27. $request->setExtendPayData(getExtendPayData());
  28. // 设备信息
  29. $request->setTerminalDeviceData(getTerminalDeviceData());
  30. // 安全信息
  31. $request->setRiskCheckData(getRiskCheckData());
  32. // 设置非必填字段
  33. $extendInfoMap = getExtendInfos();
  34. $request->setExtendInfo($extendInfoMap);
  35. // 3. 发起API调用
  36. $client = new BsPayClient();
  37. $result = $client->postRequest($request, true);
  38. if (!$result || $result->isError()) { //失败处理
  39. var_dump($result -> getErrorInfo());
  40. } else { //成功处理
  41. var_dump($result);
  42. }
  43. /**
  44. * 非必填字段
  45. *
  46. */
  47. function getExtendInfos() {
  48. // 设置非必填字段
  49. $extendInfoMap = array();
  50. // 用户客户号
  51. // $extendInfoMap["user_huifu_id"]= "";
  52. // 订单类型
  53. $extendInfoMap["order_type"]= "P";
  54. // 订单失效时间
  55. $extendInfoMap["time_expire"]= "";
  56. // 商品描述
  57. $extendInfoMap["goods_desc"]= "快捷支付接口";
  58. // 请求类型
  59. $extendInfoMap["request_type"]= "P";
  60. // 延时标记
  61. // $extendInfoMap["delay_acct_flag"]= "";
  62. // 手续费扣款标志
  63. $extendInfoMap["fee_flag"]= "2";
  64. // 备注
  65. $extendInfoMap["remark"]= "remark快捷支付接口";
  66. // 页面跳转地址
  67. $extendInfoMap["front_url"]= "http://www.baidu.com";
  68. // 分账串
  69. $extendInfoMap["acct_split_bunch"]= getAcctSplitBunchRucan();
  70. return $extendInfoMap;
  71. }
  72. function getExtendPayData() {
  73. $dto = array();
  74. // 商品简称
  75. $dto["goods_short_name"] = "01";
  76. // 业务种类
  77. $dto["biz_tp"] = "123451";
  78. // 网关支付受理渠道
  79. $dto["gw_chnnl_tp"] = "02";
  80. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  81. }
  82. function getTerminalDeviceData() {
  83. $dto = array();
  84. // 设备类型
  85. $dto["device_type"] = "1";
  86. // 交易设备IP
  87. $dto["device_ip"] = "127.0.0.1";
  88. // 交易设备MAC
  89. // $dto["device_mac"] = "";
  90. // 交易设备IMEI
  91. // $dto["device_imei"] = "";
  92. // 交易设备IMSI
  93. // $dto["device_imsi"] = "";
  94. // 交易设备ICCID
  95. // $dto["device_icc_id"] = "";
  96. // 交易设备WIFIMAC
  97. // $dto["device_wifi_mac"] = "";
  98. // 交易设备GPS
  99. // $dto["device_gps"] = "";
  100. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  101. }
  102. function getAcctInfos() {
  103. $dto = array();
  104. // 被分账对象ID
  105. $dto["huifu_id"] = "6666000109812884";
  106. // 分账金额
  107. $dto["div_amt"] = "0.01";
  108. // 账户号
  109. // $dto["acct_id"] = "";
  110. $dtoList = array();
  111. array_push($dtoList, $dto);
  112. return $dtoList;
  113. }
  114. function getAcctSplitBunchRucan() {
  115. $dto = array();
  116. // 分账明细
  117. $dto["acct_infos"] = getAcctInfos();
  118. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  119. }
  120. function getRiskCheckData() {
  121. $dto = array();
  122. // ip地址
  123. $dto["ip_addr"] = "127.0.0.1";
  124. // 基站地址
  125. // $dto["base_station"] = "";
  126. // 纬度
  127. // $dto["latitude"] = "";
  128. // 经度
  129. // $dto["longitude"] = "";
  130. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  131. }