Client.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. // This file is auto-generated, don't edit it. Thanks.
  3. namespace Alipay\EasySDK\Payment\Page;
  4. use Alipay\EasySDK\Kernel\EasySDKKernel;
  5. use Alipay\EasySDK\Payment\Page\Models\AlipayTradePagePayResponse;
  6. class Client {
  7. protected $_kernel;
  8. public function __construct($kernel){
  9. $this->_kernel = $kernel;
  10. }
  11. /**
  12. * @param string $subject
  13. * @param string $outTradeNo
  14. * @param string $totalAmount
  15. * @param string $returnUrl
  16. * @return AlipayTradePagePayResponse
  17. */
  18. public function pay($subject, $outTradeNo, $totalAmount, $returnUrl){
  19. $systemParams = [
  20. "method" => "alipay.trade.page.pay",
  21. "app_id" => $this->_kernel->getConfig("appId"),
  22. "timestamp" => $this->_kernel->getTimestamp(),
  23. "format" => "json",
  24. "version" => "1.0",
  25. "alipay_sdk" => $this->_kernel->getSdkVersion(),
  26. "charset" => "UTF-8",
  27. "sign_type" => $this->_kernel->getConfig("signType"),
  28. "app_cert_sn" => $this->_kernel->getMerchantCertSN(),
  29. "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN()
  30. ];
  31. $bizParams = [
  32. "subject" => $subject,
  33. "out_trade_no" => $outTradeNo,
  34. "total_amount" => $totalAmount,
  35. "product_code" => "FAST_INSTANT_TRADE_PAY"
  36. ];
  37. $textParams = [
  38. "return_url" => $returnUrl
  39. ];
  40. $sign = $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey"));
  41. $response = [
  42. "body" => $this->_kernel->generatePage("POST", $systemParams, $bizParams, $textParams, $sign)
  43. ];
  44. return AlipayTradePagePayResponse::fromMap($response);
  45. }
  46. /**
  47. * ISV代商户代用,指定appAuthToken
  48. *
  49. * @param $appAuthToken String 代调用token
  50. * @return $this 本客户端,便于链式调用
  51. */
  52. public function agent($appAuthToken)
  53. {
  54. $this->_kernel->injectTextParam("app_auth_token", $appAuthToken);
  55. return $this;
  56. }
  57. /**
  58. * 用户授权调用,指定authToken
  59. *
  60. * @param $authToken String 用户授权token
  61. * @return $this
  62. */
  63. public function auth($authToken)
  64. {
  65. $this->_kernel->injectTextParam("auth_token", $authToken);
  66. return $this;
  67. }
  68. /**
  69. * 设置异步通知回调地址,此处设置将在本调用中覆盖Config中的全局配置
  70. *
  71. * @param $url String 异步通知回调地址,例如:https://www.test.com/callback
  72. * @return $this
  73. */
  74. public function asyncNotify($url)
  75. {
  76. $this->_kernel->injectTextParam("notify_url", $url);
  77. return $this;
  78. }
  79. /**
  80. * 将本次调用强制路由到后端系统的测试地址上,常用于线下环境内外联调,沙箱与线上环境设置无效
  81. *
  82. * @param $testUrl String 后端系统测试地址
  83. * @return $this
  84. */
  85. public function route($testUrl)
  86. {
  87. $this->_kernel->injectTextParam("ws_service_url", $testUrl);
  88. return $this;
  89. }
  90. /**
  91. * 设置API入参中没有的其他可选业务请求参数(biz_content下的字段)
  92. *
  93. * @param $key String 业务请求参数名称(biz_content下的字段名,比如timeout_express)
  94. * @param $value object 业务请求参数的值,一个可以序列化成JSON的对象
  95. * 如果该字段是一个字符串类型(String、Price、Date在SDK中都是字符串),请使用String储存
  96. * 如果该字段是一个数值型类型(比如:Number),请使用Long储存
  97. * 如果该字段是一个复杂类型,请使用嵌套的array指定各下级字段的值
  98. * 如果该字段是一个数组,请使用array储存各个值
  99. * @return $this
  100. */
  101. public function optional($key, $value)
  102. {
  103. $this->_kernel->injectBizParam($key, $value);
  104. return $this;
  105. }
  106. /**
  107. * 批量设置API入参中没有的其他可选业务请求参数(biz_content下的字段)
  108. * optional方法的批量版本
  109. *
  110. * @param $optionalArgs array 可选参数集合,每个参数由key和value组成,key和value的格式请参见optional方法的注释
  111. * @return $this
  112. */
  113. public function batchOptional($optionalArgs)
  114. {
  115. foreach ($optionalArgs as $key => $value) {
  116. $this->_kernel->injectBizParam($key, $value);
  117. }
  118. return $this;
  119. }
  120. }