AdaPayCommon.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: leilei.yang
  5. * Date: 2021/4/20
  6. * Time: 13:34
  7. */
  8. namespace AdaPaySdk;
  9. use AdaPay\AdaPay;
  10. class AdaPayCommon extends AdaPay
  11. {
  12. function packageRequestUrl($requestParams=array()) {
  13. $adapayFuncCode = $requestParams["adapay_func_code"];
  14. if (empty($adapayFuncCode)){
  15. try {
  16. throw new \Exception('adapay_func_code不能为空');
  17. } catch (\Exception $e) {
  18. echo $e->getMessage();
  19. }
  20. }
  21. $adapayApiVersion = isset($requestParams['adapay_api_version']) ? $requestParams['adapay_api_version'] : 'v1';
  22. self::getGateWayUrl(self::$gateWayType);
  23. return self::$gateWayUrl . "/" . $adapayApiVersion . "/" . str_replace(".", "/",$adapayFuncCode);
  24. }
  25. /**
  26. * 通用请求接口 - POST - 多商户模式
  27. * @param array $params 请求参数
  28. * @param string $merchantKey 如果传了则为多商户,否则为单商户
  29. */
  30. public function requestAdapay($params=array(), $merchantKey="") {
  31. if (!empty($merchantKey)) {
  32. self::$rsaPrivateKey = $merchantKey;
  33. $this->ada_tools->rsaPrivateKey = $merchantKey;
  34. }
  35. $request_params = $params;
  36. $req_url = $this->packageRequestUrl($request_params);
  37. $request_params = $this->format_request_params($request_params);
  38. $header = $this->get_request_header($req_url, $request_params, self::$header);
  39. $this->result = $this->ada_request->curl_request($req_url, $request_params, $header, $is_json=true);
  40. }
  41. /**
  42. * 通用请求接口 - POST - 多商户模式
  43. * @param array $params
  44. * @param $merchantKey
  45. */
  46. public function requestAdapayUits($params=array(), $merchantKey="") {
  47. self::$gateWayType = "page";
  48. if (!empty($merchantKey)) {
  49. self::$rsaPrivateKey = $merchantKey;
  50. $this->ada_tools->rsaPrivateKey = $merchantKey;
  51. }
  52. $request_params = $params;
  53. $req_url = $this->packageRequestUrl($request_params);
  54. $request_params = $this->format_request_params($request_params);
  55. echo $req_url;
  56. $header = $this->get_request_header($req_url, $request_params, self::$header);
  57. $this->result = $this->ada_request->curl_request($req_url, $request_params, $header, $is_json=true);
  58. }
  59. /**
  60. * 通用查询接口 - GET
  61. * @param array $params
  62. * @param string $merchantKey 传了则为多商户模式
  63. */
  64. public function queryAdapay($params=array(), $merchantKey="") {
  65. if (!empty($merchantKey)) {
  66. self::$rsaPrivateKey = $merchantKey;
  67. $this->ada_tools->rsaPrivateKey = $merchantKey;
  68. }
  69. ksort($params);
  70. $request_params = $params;
  71. $req_url = $this->packageRequestUrl($request_params);
  72. $request_params = $this->format_request_params($request_params);
  73. $header = $this->get_request_header($req_url, http_build_query($request_params), self::$headerText);
  74. $this->result = $this->ada_request->curl_request($req_url . "?" . http_build_query($request_params), "", $header, false);
  75. }
  76. public function queryAdapayUits($params=array(), $merchantKey="") {
  77. self::$gateWayType = "page";
  78. if (!empty($merchantKey)) {
  79. self::$rsaPrivateKey = $merchantKey;
  80. $this->ada_tools->rsaPrivateKey = $merchantKey;
  81. }
  82. ksort($params);
  83. $request_params = $params;
  84. $req_url = $this->packageRequestUrl($request_params);
  85. $request_params = $this->format_request_params($request_params);
  86. $header = $this->get_request_header($req_url, http_build_query($request_params), self::$headerText);
  87. $this->result = $this->ada_request->curl_request($req_url . "?" . http_build_query($request_params), "", $header, false);
  88. }
  89. function array_remove($arr, $key) {
  90. if(!array_key_exists($key, $arr)){
  91. return $arr;
  92. }
  93. $keys = array_keys($arr);
  94. $index = array_search($key, $keys);
  95. if($index !== FALSE){
  96. array_splice($arr, $index, 1);
  97. }
  98. return $arr;
  99. }
  100. function format_request_params($request_params) {
  101. $request_params = $this->array_remove($request_params, "adapay_func_code");
  102. $request_params = $this->array_remove($request_params, "adapay_api_version");
  103. $request_params = $this->do_empty_data($request_params);
  104. return $request_params;
  105. }
  106. }