preorder-uqrcodepay.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * 主扫交易示例 - 银联
  4. */
  5. require_once '../../vendor/autoload.php';
  6. $config = new \Lakala\OpenAPISDK\V3\Configuration();
  7. $tradeLocationInfo = new \Lakala\OpenAPISDK\V3\Model\TradeLocationInfo('106.37.232.115');
  8. // 主扫交易Api
  9. $api = new \Lakala\OpenAPISDK\V3\Api\TransPreorderApi($config);
  10. // 主扫交易参数
  11. $request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
  12. // 必填参数
  13. $request->setMerchantNo('822290070111135');
  14. $request->setTermNo('29034705');
  15. $request->setOutTradeNo(date('YmdHis', time()));
  16. $request->setAccountType('UQRCODEPAY');
  17. $request->setTransType('41');
  18. $request->setTotalAmount('10000'); // 单位分
  19. $request->setLocationInfo($tradeLocationInfo);
  20. // 非必填参数
  21. $request->setBusiMode('');
  22. $request->setSubject('');
  23. $request->setPayOrderNo('');
  24. $request->setNotifyUrl('https://www.test.com/lakela_order_payment_callback.php');
  25. $request->setSettleType('');
  26. $request->setRemark('');
  27. $request->setPromoInfo('');
  28. $request->setOutOrderNo('');
  29. $request->setPnrInsIdCd('');
  30. // 银联主扫场景 - 账户端业务信息
  31. $acc_busi_fields = new \Lakala\OpenAPISDK\V3\Model\TradePreorderUnionPayAccBusiFields();
  32. $acc_busi_fields->setUserId('2843132323');
  33. $acc_busi_fields->setTimeoutExpress('');
  34. $acc_busi_fields->setAcqAddnDataOrderInfo('');
  35. $acc_busi_fields->setAcqAddnDataGoodsInfo('');
  36. $acc_busi_fields->setFrontUrl('');
  37. $acc_busi_fields->setFrontFailUrl('');
  38. $acc_busi_fields->setInstalWill('');
  39. $acc_busi_fields->setUnQrcode('');
  40. $acc_busi_fields->setUserAuthCode('');
  41. $acqAddnDataOrderInfo = new \Lakala\OpenAPISDK\V3\Model\TradePreorderUnionPayAcqAddnDataOrderInfo();
  42. $acqAddnDataOrderInfo->setTitle('标题');
  43. $acqAddnDataOrderInfo->setDctAmount('');
  44. $acqAddnDataOrderInfo->setAddnInfo('');
  45. $addnInfo = new \Lakala\OpenAPISDK\V3\Model\TradePreorderUnionPayAddnInfo();
  46. $addnInfo->setPreproduct('');
  47. $addnInfo->setLockplan('');
  48. $riskInfo = new \Lakala\OpenAPISDK\V3\Model\TradePreorderUnionPayRiskInfo();
  49. $riskInfo->setItemNo('');
  50. $riskInfo->setOrderSource('');
  51. $riskInfo->setPayUserId('');
  52. $riskInfo->setPayCodeId('');
  53. $riskInfo->setMerchantType('');
  54. $addnInfo->setRiskInfo($riskInfo);
  55. $acqAddnDataOrderInfo->setAddnInfo($addnInfo);
  56. $acc_busi_fields->setAcqAddnDataOrderInfo($acqAddnDataOrderInfo);
  57. $acq_addn_data_goods_info = new \Lakala\OpenAPISDK\V3\Model\TradePreorderUnionPayAcqAddnDataGoodsInfo();
  58. $acq_addn_data_goods_info->setId('');
  59. $acq_addn_data_goods_info->setName('');
  60. $acq_addn_data_goods_info->setPrice('');
  61. $acq_addn_data_goods_info->setQuantity('');
  62. $acq_addn_data_goods_info->setCategory('');
  63. $acq_addn_data_goods_info->setAddninfo('');
  64. $acc_busi_fields->setAcqAddnDataGoodsInfo([$acq_addn_data_goods_info]);
  65. // 账户端业务信息
  66. $request->setAccBusiFields($acc_busi_fields);
  67. try {
  68. $response = $api->transPreorder($request);
  69. if ($response->getRespData()) {
  70. print_r($response->getRespData());
  71. print_r($response->getAccRespFields());
  72. }
  73. else {
  74. print_r($response);
  75. }
  76. echo $response->getCode();
  77. # 响应头信息
  78. print_r($response->getHeaders());
  79. # 响应原文
  80. echo $response->getOriginalText();
  81. } catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
  82. echo $e->getMessage();
  83. }