BusinessParams.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace Yurun\PaySDK\AlipayApp\FTF\Params\QR;
  3. use Yurun\PaySDK\AlipayApp\FTF\Params\ExtendParams;
  4. /**
  5. * 支付宝统一收单线下交易预创建(扫码支付)业务参数类.
  6. */
  7. class BusinessParams
  8. {
  9. use \Yurun\PaySDK\Traits\JSONParams;
  10. /**
  11. * 商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复.
  12. *
  13. * @var string
  14. */
  15. public $out_trade_no;
  16. /**
  17. * 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000].
  18. *
  19. * @var float
  20. */
  21. public $total_amount = 0;
  22. /**
  23. * 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。
  24. * 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】.
  25. *
  26. * @var float
  27. */
  28. public $discountable_amount;
  29. /**
  30. * 订单标题.
  31. *
  32. * @var string
  33. */
  34. public $subject = '';
  35. /**
  36. * 如果该值为空,则默认为商户签约账号对应的支付宝用户ID.
  37. *
  38. * @var string
  39. */
  40. public $seller_id;
  41. /**
  42. * 订单描述.
  43. *
  44. * @var string
  45. */
  46. public $body;
  47. /**
  48. * 订单包含的商品列表信息.
  49. *
  50. * @var array<\Yurun\PaySDK\AlipayApp\FTF\Params\GoodsDetail>
  51. */
  52. public $goods_detail;
  53. /**
  54. * 业务扩展参数,详见业务扩展参数说明.
  55. *
  56. * @var \Yurun\PaySDK\AlipayApp\FTF\Params\ExtendParams
  57. */
  58. public $extend_params;
  59. /**
  60. * 商户操作员编号.
  61. *
  62. * @var string
  63. */
  64. public $operator_id;
  65. /**
  66. * 商户门店编号.
  67. *
  68. * @var string
  69. */
  70. public $store_id;
  71. /**
  72. * 商户机具终端编号.
  73. *
  74. * @var string
  75. */
  76. public $terminal_id;
  77. /**
  78. * 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m.
  79. *
  80. * @var string
  81. */
  82. public $timeout_express;
  83. public function __construct()
  84. {
  85. $this->extend_params = new ExtendParams();
  86. }
  87. public function toString()
  88. {
  89. $obj = (array) $this;
  90. if (empty($obj['goods_detail']))
  91. {
  92. unset($obj['goods_detail']);
  93. }
  94. else
  95. {
  96. $obj['goods_detail'] = json_encode($obj['goods_detail']);
  97. }
  98. $result = $obj['extend_params']->toArray();
  99. if (null === $result)
  100. {
  101. unset($obj['extend_params']);
  102. }
  103. else
  104. {
  105. $obj['extend_params'] = $result;
  106. }
  107. foreach ($obj as $key => $value)
  108. {
  109. if (null === $value)
  110. {
  111. unset($obj[$key]);
  112. }
  113. }
  114. return json_encode($obj);
  115. }
  116. }