vendor.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. defined('InShopNC') or exit('Access Invalid!');
  3. require_once (BASE_ROOT_PATH . '/helper/message/publisher.php');
  4. require_once(BASE_HELPER_PATH . '/refill/util.php');
  5. require_once(BASE_HELPER_PATH . '/refill/divert_account.php');
  6. require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
  7. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  8. require_once(BASE_HELPER_PATH . '/PHPExcel/PHPExcel.php');
  9. class vendorControl
  10. {
  11. public function __construct(){
  12. Log::short_name('vendor');
  13. }
  14. //中石化电子券token获取
  15. public function token_refreshOp()
  16. {
  17. Log::record(__METHOD__,Log::DEBUG);
  18. require_once(BASE_HELPER_RAPI_PATH . "/gdsinopec/config.php");
  19. $worker = function (&$period) : bool
  20. {
  21. $token_req = new refill\gdsinopec\config();
  22. [$state, $result] = $token_req->get_access_token();
  23. if ($state === false) {
  24. Log::record("get token fail msg:$result", Log::ERR);
  25. return false;
  26. } else {
  27. $period = $result;
  28. return true;
  29. }
  30. };
  31. $next_time = 0;
  32. $period = 7000;
  33. while (true)
  34. {
  35. try
  36. {
  37. if($next_time > time()) {
  38. sleep(1);
  39. }
  40. elseif($worker($period)) {
  41. $next_time = time() + $period;
  42. }
  43. else {
  44. Log::record("token_refresh",Log::ERR);
  45. }
  46. }
  47. catch (Exception $ex) {
  48. Log::record($ex->getMessage(),Log::ERR);
  49. }
  50. }
  51. }
  52. }