RefillOil.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace refill\zzx;
  3. require_once(BASE_HELPER_RAPI_PATH . '/zzx/config.php');
  4. use refill;
  5. use mtopcard;
  6. use Log;
  7. class RefillOil extends refill\IRefillOil
  8. {
  9. public function __construct($cfgs)
  10. {
  11. parent::__construct($cfgs);
  12. }
  13. private function req_params(string $card_no,int $amount,array $other)
  14. {
  15. $params['mid'] = config::MID;
  16. $params['cardNo'] = $card_no;
  17. $params['amount'] = $amount;
  18. $params['orderNum'] = $other['order_sn'];
  19. $params['backUrl'] = urlencode(config::NOTIFY_URL);
  20. return $params;
  21. }
  22. private function sign($params)
  23. {
  24. ksort($params);
  25. $content = '';
  26. foreach ($params as $key => $val)
  27. {
  28. if(empty($val)){
  29. continue;
  30. }
  31. $content .= "{$key}={$val}&";
  32. }
  33. $content .= "key=".config::KEY;
  34. Log::record("body={$content}",Log::DEBUG);
  35. return strtoupper(md5($content));
  36. }
  37. public function add($card_no,$card_type,$amount,$input)
  38. {
  39. $params = $this->req_params($card_no,$amount,$input);
  40. $sign = $this->sign($params);
  41. $params['sign'] = $sign;
  42. $resp = http_post_data(config::ORDER_URL,json_encode($params),config::ExtHeaders);
  43. if($resp === false) {
  44. return [false,'系统错误'];
  45. }
  46. else
  47. {
  48. Log::record($resp,Log::DEBUG);
  49. $resp = json_decode($resp,true);
  50. if($resp['code'] == 0000 && $resp['respCode'] == 1111) {
  51. return [true,$resp['msg']];
  52. }
  53. else {
  54. return [false,$resp['msg']];
  55. }
  56. }
  57. }
  58. public function query($refill_info)
  59. {
  60. $params['mid'] = config::MID;
  61. $params['orderNum'] = $refill_info['order_sn'];
  62. $params['sign'] = $this->sign($params);
  63. $resp = http_post_data(config::QUERY_URL,json_encode($params),config::ExtHeaders);
  64. if($resp === false) {
  65. return [false,'系统错误'];
  66. }
  67. else {
  68. Log::record($resp,Log::DEBUG);
  69. $resp = json_decode($resp,true);
  70. $order_state = '';
  71. if ($resp['code'] == 0000) {
  72. $order_state = ORDER_STATE_SUCCESS;
  73. } elseif ($resp['code'] == 0004) {
  74. $order_state = ORDER_STATE_CANCEL;
  75. } elseif ($resp['code'] == 0005){
  76. $order_state = ORDER_STATE_SEND;
  77. }
  78. if (empty($order_state)) {
  79. return [false, $resp['msg']];
  80. }
  81. return [true, $order_state];
  82. }
  83. }
  84. }