RefillPhone.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace refill\weiyi;
  3. require_once(BASE_HELPER_RAPI_PATH . '/weiyi/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['userid'] = config::USER_ID;
  15. $params['orderid'] = $order_sn;
  16. $params['echo'] = rand(100000,999999);
  17. $params['timestamp'] = date("YmdHis");
  18. $params['version'] = '1.0';
  19. $params['packcode'] = $amount;
  20. $params['mobile'] = $phone;
  21. $params['flowtype'] = 'fee_quick';
  22. $params['callback_url'] = config::NOTIFY_URL;
  23. return $params;
  24. }
  25. public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
  26. {
  27. refill\util::send_test($params['order_sn']);
  28. return [true , '',false];
  29. }
  30. public function query($refill_info)
  31. {
  32. $params['orderid'] = $refill_info['order_sn'];
  33. $params['userid'] = config::USER_ID;
  34. $params['timestamp'] = date("YmdHis");
  35. $content = $params['userid'] . $params['orderid'] . $params['timestamp'] . config::KEY;
  36. $params['sign'] = md5($content);
  37. $params = json_encode($params);
  38. $resp = http_post_data(config::QUERY_URL, $params , config::ExtHeaders);
  39. if (empty($resp)) {
  40. return [false, '系统错误'];
  41. }
  42. else
  43. {
  44. Log::record($resp, Log::DEBUG);
  45. $resp = json_decode($resp, true);
  46. if (empty($resp)) {
  47. return [false, '系统错误'];
  48. } elseif ($resp['code'] === '0000') {
  49. $order_state = ORDER_STATE_SUCCESS;
  50. } elseif ($resp['code'] === '0004') {
  51. $order_state = ORDER_STATE_CANCEL;
  52. } elseif ($resp['code'] === '0002' || $resp['code'] === '0003') {
  53. $order_state = ORDER_STATE_SEND;
  54. } elseif ($resp['code'] === '0005') {
  55. $order_state = ORDER_STATE_NOEXIST;
  56. } else {
  57. return [false, $resp['desc']];
  58. }
  59. return [true, $order_state];
  60. }
  61. }
  62. public function balance()
  63. {
  64. return [false, '暂无余额接口'];
  65. }
  66. private function sign($params)
  67. {
  68. $content = $params['userid'] . $params['orderid'] . config::KEY . $params['echo'] . $params['timestamp'];
  69. return md5($content);
  70. }
  71. }