V2TradeHostingPaymentPreorderWxRequestDemo.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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/V2TradeHostingPaymentPreorderWxRequest.php";
  12. use BsPaySdk\core\BsPayClient;
  13. use BsPaySdk\request\V2TradeHostingPaymentPreorderWxRequest;
  14. // 2.组装请求参数
  15. $request = new V2TradeHostingPaymentPreorderWxRequest();
  16. // 预下单类型
  17. $request->setPreOrderType("3");
  18. // 请求日期
  19. $request->setReqDate(date("Ymd"));
  20. // 请求流水号
  21. $request->setReqSeqId(date("YmdHis").mt_rand());
  22. // 商户号
  23. $request->setHuifuId("6666000111546360");
  24. // 交易金额
  25. $request->setTransAmt("0.10");
  26. // 商品描述
  27. $request->setGoodsDesc("app跳微信消费");
  28. // 微信小程序扩展参数集合
  29. $request->setMiniappData(getMiniappDataRucan());
  30. // 设置非必填字段
  31. $extendInfoMap = getExtendInfos();
  32. $request->setExtendInfo($extendInfoMap);
  33. // 3. 发起API调用
  34. $client = new BsPayClient();
  35. $result = $client->postRequest($request);
  36. if (!$result || $result->isError()) { //失败处理
  37. var_dump($result -> getErrorInfo());
  38. } else { //成功处理
  39. var_dump($result);
  40. }
  41. /**
  42. * 非必填字段
  43. *
  44. */
  45. function getExtendInfos() {
  46. // 设置非必填字段
  47. $extendInfoMap = array();
  48. // 收银台ID
  49. $extendInfoMap["checkout_id"]= "";
  50. // 是否延迟交易
  51. $extendInfoMap["delay_acct_flag"]= "N";
  52. // 分账对象
  53. $extendInfoMap["acct_split_bunch"]= getAcctSplitBunchRucan();
  54. // 异步通知地址
  55. $extendInfoMap["notify_url"]= "https://callback.service.com/xx";
  56. // 交易失效时间
  57. // $extendInfoMap["time_expire"]= "";
  58. return $extendInfoMap;
  59. }
  60. function getAcctInfosRucan() {
  61. $dto = array();
  62. // 分账金额
  63. $dto["div_amt"] = "0.08";
  64. // 被分账方ID
  65. $dto["huifu_id"] = "6666000111546360";
  66. $dtoList = array();
  67. array_push($dtoList, $dto);
  68. return $dtoList;
  69. }
  70. function getAcctSplitBunchRucan() {
  71. $dto = array();
  72. // 分账明细
  73. $dto["acct_infos"] = getAcctInfosRucan();
  74. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  75. }
  76. function getMiniappDataRucan() {
  77. $dto = array();
  78. // 应用ID
  79. $dto["seq_id"] = "系统应用ID";
  80. // 私有信息
  81. // $dto["private_info"] = "";
  82. return json_encode($dto,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  83. }