RefillOil.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace refill\haohao;
  3. require_once(BASE_HELPER_RAPI_PATH . '/haohao/config.php');
  4. use refill;
  5. use Log;
  6. class RefillOil extends refill\IRefillPhone
  7. {
  8. public function __construct($cfgs)
  9. {
  10. parent::__construct($cfgs);
  11. }
  12. private function req_params(int $card_no, int $card_type, string $order_sn, int $amount)
  13. {
  14. $params['mchId'] = config::MCH_ID;
  15. $params['number'] = $card_no;
  16. $params['amount'] = $amount * 100;
  17. $params['operator'] = config::operator[$card_type];
  18. $params['mchOrderNo'] = $order_sn;
  19. $params['notifyUrl'] = config::NOTIFY_URL;
  20. return $params;
  21. }
  22. public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
  23. {
  24. $params = $this->req_params($card_no, $card_type, $params['order_sn'], $amount);
  25. $sign = $this->sign($params);
  26. $params['sign'] = $sign;
  27. $params = json_encode($params);
  28. $resp = http_post_data(config::ORDER_URL, $params , config::ExtHeaders , $net_errno);
  29. if (empty($resp)) {
  30. return [false, '系统错误', true];
  31. }
  32. else
  33. {
  34. Log::record($resp, Log::DEBUG);
  35. $resp = json_decode($resp ,true);
  36. if (empty($resp)) {
  37. return [false, '系统错误', true];
  38. } elseif ($resp['code'] == 0) {
  39. return [true, '', false];
  40. } else {
  41. return [false, $resp['msg'], false];
  42. }
  43. }
  44. }
  45. public function query($refill_info)
  46. {
  47. return [false, '上游未提供接口'];
  48. }
  49. private function sign($params)
  50. {
  51. ksort($params);
  52. $body = '';
  53. foreach ($params as $k => $v) {
  54. if (strlen($v)) {
  55. $body .= "{$k}={$v}&";
  56. }
  57. }
  58. $body .= "key=" . config::KEY;
  59. return strtoupper(md5($body));
  60. }
  61. }