RefillPhone.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace refill\huoli;
  3. require_once(BASE_HELPER_RAPI_PATH . '/huoli/config.php');
  4. use refill;
  5. use Log;
  6. class RefillPhone extends refill\IRefillPhone
  7. {
  8. public function __construct($cfgs)
  9. {
  10. parent::__construct($cfgs);
  11. }
  12. private function req_params(int $phone, int $amount, string $order_sn)
  13. {
  14. $params['out_trade_no'] = "$order_sn";
  15. $params['phone'] = "$phone";
  16. $params['way'] = 6;
  17. $params['amount'] = "$amount";
  18. return $params;
  19. }
  20. private function createHeader(): array
  21. {
  22. $time = time();
  23. $sign = $this->sign($time);
  24. return [
  25. 'app-key:'.config::APP_KEY,
  26. 'sign:'.$sign,
  27. 't:'.$time,
  28. 'v:'.config::Version,
  29. 'Content-Type: application/json;charset=UTF-8'
  30. ];
  31. }
  32. public function add($card_no, $card_type, $amount, $input, &$net_errno = 0)
  33. {
  34. $params = $this->req_params($card_no, $amount, $input['order_sn']);
  35. $params = json_encode($params);
  36. $header = $this->createHeader();
  37. $resp = http_post_data(config::ORDER_URL, $params , $header, $net_errno);
  38. if (empty($resp)) {
  39. return [false, '系统错误', true];
  40. }
  41. else
  42. {
  43. Log::record($resp, Log::DEBUG);
  44. $resp = json_decode($resp, true);
  45. $code = $resp['code'];
  46. if (empty($resp)) {
  47. return [false, '系统错误', true];
  48. } elseif ($code === 0) {
  49. return [true, $resp['data']['order_no'], false];
  50. } else {
  51. return [false, $resp['message'], false];
  52. }
  53. }
  54. }
  55. public function query($refill_info)
  56. {
  57. return [false, '不支持单个订单查询 '];
  58. }
  59. public function balance()
  60. {
  61. $header = $this->createHeader();
  62. $resp = http_request(config::BALANCE_URL, [], 'GET', false, $header);
  63. if (empty($resp)) {
  64. return [false, '系统错误'];
  65. }
  66. else
  67. {
  68. Log::record($resp, Log::DEBUG);
  69. $resp = json_decode($resp, true);
  70. $code = $resp['code'];
  71. if (empty($resp)) {
  72. return [false, '系统错误'];
  73. } elseif ($code === 0) {
  74. return [true, $resp['data']['amount']];
  75. } else {
  76. return [false, $resp['message']];
  77. }
  78. }
  79. }
  80. private function sign($time)
  81. {
  82. $content = config::Version . config::APP_SECRET . $time . config::APP_SECRET;
  83. return md5($content);
  84. }
  85. }