AlipayTradePrecreateContentBuilder.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xudong.ding
  5. * Date: 16/5/19
  6. * Time: 下午2:09
  7. */
  8. namespace app\common\services\alipay\f2fpay\model\builder;
  9. class AlipayTradePrecreateContentBuilder extends ContentBuilder
  10. {
  11. // 商户网站订单系统中唯一订单号,64个字符以内,只能包含字母、数字、下划线,
  12. // 需保证商户系统端不能重复,建议通过数据库sequence生成,
  13. private $outTradeNo;
  14. // 卖家支付宝账号ID,用于支持一个签约账号下支持打款到不同的收款账号,(打款到sellerId对应的支付宝账号)
  15. // 如果该字段为空,则默认为与支付宝签约的商户的PID,也就是appid对应的PID
  16. private $sellerId;
  17. // 订单总金额,整形,此处单位为元,精确到小数点后2位,不能超过1亿元
  18. // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
  19. private $totalAmount;
  20. // 订单可打折金额,此处单位为元,精确到小数点后2位
  21. // 可以配合商家平台配置折扣活动,如果订单部分商品参与打折,可以将部分商品总价填写至此字段,默认全部商品可打折
  22. // 如果该值未传入,但传入了【订单总金额】,【不可打折金额】 则该值默认为【订单总金额】- 【不可打折金额】
  23. private $discountableAmount;
  24. // 订单不可打折金额,此处单位为元,精确到小数点后2位,可以配合商家平台配置折扣活动,如果酒水不参与打折,则将对应金额填写至此字段
  25. // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
  26. private $undiscountableAmount;
  27. //买家支付宝账号
  28. private $buyerLogonId;
  29. // 订单标题,粗略描述用户的支付目的。如“喜士多(浦东店)消费”
  30. private $subject;
  31. // 订单描述,可以对交易或商品进行一个详细地描述,比如填写"购买商品2件共15.00元"
  32. private $body;
  33. // 商品明细列表,需填写购买商品详细信息,
  34. private $goodsDetailList = array();
  35. // 商户操作员编号,添加此参数可以为商户操作员做销售统
  36. private $operatorId;
  37. // 商户门店编号,通过门店号和商家后台可以配置精准到门店的折扣信息,详询支付宝技术支持
  38. private $storeId;
  39. // 支付宝商家平台中配置的商户门店号,详询支付宝技术支持
  40. private $alipayStoreId;
  41. // 商户机具终端编号,当以机具方式接入支付宝时必传,详询支付宝技术支持
  42. private $terminalId;
  43. // 业务扩展参数,目前可添加由支付宝分配的系统商编号(通过setSysServiceProviderId方法),详情请咨询支付宝技术支持
  44. private $extendParams = array();
  45. // (推荐使用,相对时间) 支付超时时间,5m 5分钟
  46. private $timeExpress;
  47. private $bizContent = NULL;
  48. private $bizParas = array();
  49. public function setOutTradeNo($outTradeNo)
  50. {
  51. $this->outTradeNo = $outTradeNo;
  52. $this->bizParas['out_trade_no'] = $outTradeNo;
  53. }
  54. public function getOutTradeNo()
  55. {
  56. return $this->outTradeNo;
  57. }
  58. public function setSellerId($sellerId)
  59. {
  60. $this->sellerId = $sellerId;
  61. $this->bizParas['seller_id'] = $sellerId;
  62. }
  63. public function getSellerId()
  64. {
  65. return $this->sellerId;
  66. }
  67. public function setTotalAmount($totalAmount)
  68. {
  69. $this->totalAmount = $totalAmount;
  70. $this->bizParas['total_amount'] = $totalAmount;
  71. }
  72. public function getTotalAmount()
  73. {
  74. return $this->totalAmount;
  75. }
  76. public function setDiscountableAmount($discountableAmount)
  77. {
  78. $this->discountableAmount = $discountableAmount;
  79. $this->bizParas['discountable_amount'] = $discountableAmount;
  80. }
  81. public function getDiscountableAmount()
  82. {
  83. return $this->discountableAmount;
  84. }
  85. public function setUndiscountableAmount($undiscountableAmount)
  86. {
  87. $this->undiscountableAmount = $undiscountableAmount;
  88. $this->bizParas['undiscountable_amount'] = $undiscountableAmount;
  89. }
  90. public function getUndiscountableAmount()
  91. {
  92. return $this->undiscountableAmount;
  93. }
  94. public function setBuyerLogonId($buyerLogonId)
  95. {
  96. $this->buyerLogonId = $buyerLogonId;
  97. $this->bizParas['buyer_logon_id'] = $buyerLogonId;
  98. }
  99. public function getBuyerLogonId()
  100. {
  101. return $this->buyerLogonId;
  102. }
  103. public function setSubject($subject)
  104. {
  105. $this->subject = $subject;
  106. $this->bizParas['subject'] = $subject;
  107. }
  108. public function getSubject()
  109. {
  110. return $this->subject;
  111. }
  112. public function setBody($body)
  113. {
  114. $this->body = $body;
  115. $this->bizParas['body'] = $body;
  116. }
  117. public function getBody()
  118. {
  119. return $this->body;
  120. }
  121. public function setOperatorId($operatorId)
  122. {
  123. $this->operatorId = $operatorId;
  124. $this->bizParas['operator_id'] = $operatorId;
  125. }
  126. public function getOperatorId()
  127. {
  128. return $this->operatorId;
  129. }
  130. public function setStoreId($storeId)
  131. {
  132. $this->storeId = $storeId;
  133. $this->bizParas['store_id'] = $storeId;
  134. }
  135. public function getStoreId()
  136. {
  137. return $this->storeId;
  138. }
  139. public function setTerminalId($terminalId)
  140. {
  141. $this->terminalId = $terminalId;
  142. $this->bizParas['terminal_id'] = $terminalId;
  143. }
  144. public function getTerminalId()
  145. {
  146. return $this->terminalId;
  147. }
  148. public function setTimeExpress($timeExpress)
  149. {
  150. $this->timeExpress = $timeExpress;
  151. $this->bizParas['timeout_express'] = $timeExpress;
  152. }
  153. public function getTimeExpress()
  154. {
  155. return $this->timeExpress;
  156. }
  157. public function getAlipayStoreId()
  158. {
  159. return $this->alipayStoreId;
  160. }
  161. public function setAlipayStoreId($alipayStoreId)
  162. {
  163. $this->alipayStoreId = $alipayStoreId;
  164. $this->bizParas['alipay_store_id'] = $alipayStoreId;
  165. }
  166. public function getExtendParams()
  167. {
  168. return $this->extendParams;
  169. }
  170. public function setExtendParams($extendParams)
  171. {
  172. $this->extendParams = $extendParams;
  173. $this->bizParas['extend_params'] = $extendParams;
  174. }
  175. public function getGoodsDetailList()
  176. {
  177. return $this->goodsDetailList;
  178. }
  179. public function setGoodsDetailList($goodsDetailList)
  180. {
  181. $this->goodsDetailList = $goodsDetailList;
  182. $this->bizParas['goods_detail'] = $goodsDetailList;
  183. }
  184. public function getBizContent()
  185. {
  186. /*$this->bizContent = "{";
  187. foreach ($this->bizParas as $k=>$v){
  188. $this->bizContent.= "\"".$k."\":\"".$v."\",";
  189. }
  190. $this->bizContent = substr($this->bizContent,0,-1);
  191. $this->bizContent.= "}";*/
  192. if(!empty($this->bizParas)){
  193. $this->bizContent = json_encode($this->bizParas,JSON_UNESCAPED_UNICODE);
  194. }
  195. return $this->bizContent;
  196. }
  197. }
  198. ?>