preorder-alipay-encry.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. /**
  9. * 主扫交易Api
  10. *
  11. * @config 配置文件
  12. * @useSM4ForRequestBody 请求体用sm4加密码
  13. */
  14. $api = new \Lakala\OpenAPISDK\V3\Api\TransPreorderApi($config, \Lakala\OpenAPISDK\V3\Api\EncryptMode::REQUEST);
  15. // 主扫交易参数
  16. $request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
  17. // 必填参数
  18. $request->setMerchantNo('822290070111135');
  19. $request->setTermNo('29034705');
  20. $request->setOutTradeNo(date('YmdHis', time()));
  21. $request->setAccountType('ALIPAY');
  22. $request->setTransType('41');
  23. $request->setTotalAmount('10000'); // 单位分
  24. $request->setLocationInfo($tradeLocationInfo);
  25. // 非必填参数
  26. $request->setBusiMode('');
  27. $request->setSubject('');
  28. $request->setPayOrderNo('');
  29. $request->setNotifyUrl('https://www.test.com/lakela_order_payment_callback.php');
  30. $request->setSettleType('');
  31. $request->setRemark('');
  32. $request->setPromoInfo('');
  33. $request->setOutOrderNo('');
  34. $request->setPnrInsIdCd('');
  35. // 支付宝主扫场景 - 账户端业务信息
  36. $acc_busi_fields = new \Lakala\OpenAPISDK\V3\Model\TradePreorderAlipayAccBusiFields();
  37. $acc_busi_fields->setUserId('2843132323');
  38. $acc_busi_fields->setTimeoutExpress('');
  39. $acc_busi_fields->setQuitUrl('');
  40. $acc_busi_fields->setStoreId('');
  41. $acc_busi_fields->setDisablePayChannels('');
  42. $acc_busi_fields->setBusinessParams('');
  43. $acc_busi_fields->setMinAge('');
  44. // 支付宝主扫场景 - extend_params
  45. $extend_params = new \Lakala\OpenAPISDK\V3\Model\TradePreorderAlipayExtendParams();
  46. $extend_params->setSysServiceProviderId('12121');
  47. $extend_params->setHbFqNum('');
  48. $extend_params->setHbFqSellerPercent('');
  49. $extend_params->setFoodOrderType('');
  50. $acc_busi_fields->setExtendParams($extend_params);
  51. // 支付宝主扫场景 - 商品信息
  52. $goods_detail = new \Lakala\OpenAPISDK\V3\Model\TradePreorderAlipayGoodsDetail();
  53. $goods_detail->setGoodsId('1042e1e1e');
  54. $goods_detail->setAlipayGoodsId('');
  55. $goods_detail->setGoodsName('');
  56. $goods_detail->setQuantity('');
  57. $goods_detail->setPrice('');
  58. $goods_detail->setGoodsCategory('');
  59. $goods_detail->setCategoriesTree('');
  60. $goods_detail->setBody('');
  61. $goods_detail->setShowUrl('');
  62. $goods_detail1 = new \Lakala\OpenAPISDK\V3\Model\TradePreorderAlipayGoodsDetail();
  63. $goods_detail1->setGoodsId('37024242');
  64. $goods_detail1->setAlipayGoodsId('');
  65. $goods_detail1->setGoodsName('');
  66. $goods_detail1->setQuantity('');
  67. $goods_detail1->setPrice('');
  68. $goods_detail1->setGoodsCategory('');
  69. $goods_detail1->setCategoriesTree('');
  70. $goods_detail1->setBody('');
  71. $goods_detail1->setShowUrl('');
  72. $acc_busi_fields->setGoodsDetail([$goods_detail, $goods_detail1]);
  73. // 账户端业务信息
  74. $request->setAccBusiFields($acc_busi_fields);
  75. try {
  76. $response = $api->transPreorder($request);
  77. if ($response->getRespData()) {
  78. print_r($response->getRespData());
  79. print_r($response->getAccRespFields());
  80. }
  81. else {
  82. print_r($response);
  83. }
  84. echo $response->getCode();
  85. # 响应头信息
  86. print_r($response->getHeaders());
  87. # 响应原文
  88. echo $response->getOriginalText();
  89. } catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
  90. echo $e->getMessage();
  91. }