mtUtil.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace common\components;
  3. use Yii;
  4. use Shishaoqi\MeituanFlashPurchase\Application;
  5. /**
  6. * 美团工具箱
  7. */
  8. class mtUtil
  9. {
  10. public static function getAccessToken($ext)
  11. {
  12. $shopId = $ext->shopId ?? '';
  13. $mtAccessTokenExpire = $ext->mtAccessTokenExpire ?? '';
  14. $date = date("Y-m-d H:i:s");
  15. $mtAccessToken = $ext->mtAccessToken ?? '';
  16. if ($mtAccessTokenExpire > $date) {
  17. return $mtAccessToken;
  18. }
  19. $mtRefreshTokenExpire = $ext->mtRefreshTokenExpire ?? '';
  20. if ($date > $mtRefreshTokenExpire) {
  21. noticeUtil::push("门店:{$shopId} 的美团refresh_access_token已经失效,已无法获取access_token,请重点关注", '15280215347');
  22. }
  23. $mtRefreshToken = $ext->mtRefreshToken ?? '';
  24. $config = dict::getDict('mtConfig');
  25. $app = new Application($config);
  26. $appId = $config['app_id'] ?? '';
  27. $return = $app->token->refreshToken($appId, $mtRefreshToken);
  28. Yii::info('美团refresh_access_token刷新access_token,refreshToken:' . $mtRefreshToken . ',数据:' . $return);
  29. $ret = json_decode($return, true);
  30. if (isset($ret['status']) == false || $ret['status'] != 0) {
  31. noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,接口返回数据错误,请重点关注", '15280215347');
  32. return '';
  33. }
  34. $accessToken = $ret['access_token'] ?? '';
  35. if (empty($accessToken)) {
  36. noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,未获取access_token,请重点关注", '15280215347');
  37. return '';
  38. }
  39. $refreshToken = $ret['refresh_token'] ?? '';
  40. if (empty($refreshToken)) {
  41. noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,未获取refresh_token,请重点关注", '15280215347');
  42. return '';
  43. }
  44. $expiresIn = $ret['expires_in'] ?? 0;
  45. $refreshExpiresIn = $ret['re_expires_in'] ?? 0;
  46. $ext->mtAppPoiCode = $shopId;
  47. $ext->mtAccessToken = $accessToken;
  48. $ext->mtAccessTokenExpire = date("Y-m-d H:i:s", (time() + $expiresIn));
  49. $ext->mtRefreshToken = $refreshToken;
  50. $ext->mtRefreshTokenExpire = date("Y-m-d H:i:s", (time() + $refreshExpiresIn));
  51. $ext->save();
  52. return $accessToken;
  53. }
  54. }