AlipayTradePayContentBuilder.php 7.8 KB

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