shish 4 tahun lalu
induk
melakukan
0f802b2e6e

+ 9 - 2
app-hd/controllers/MtController.php

@@ -2,6 +2,7 @@
 
 namespace hd\controllers;
 
+use biz\shop\classes\ShopExtClass;
 use bizHd\custom\classes\CustomClass;
 use bizHd\goods\classes\CategoryClass;
 use bizHd\goods\classes\GoodsClass;
@@ -10,9 +11,9 @@ use bizHd\order\classes\OrderClass;
 use bizHd\order\services\OrderService;
 use bizHd\shop\classes\ShopClass;
 use bizHd\work\classes\WorkClass;
-use common\components\arrayUtil;
 use common\components\dict;
 use common\components\httpUtil;
+use common\components\mtUtil;
 use common\components\noticeUtil;
 use common\components\util;
 use Yii;
@@ -55,6 +56,12 @@ class MtController extends PublicController
                 noticeUtil::push("美团确认订单报错,没有找到门店,美团订单id:{$mtOrderId}", '15280215347');
                 return Json::encode(['data' => 'ok']);
             }
+            $shopExt = ShopExtClass::getByCondition(['shopId' => $shopId], true);
+            if (empty($shopExt)) {
+                noticeUtil::push("美团确认订单报错,没有找到门店拓展信息,美团订单id:{$mtOrderId}", '15280215347');
+                return Json::encode(['data' => 'ok']);
+            }
+            $accessToken = mtUtil::getAccessToken($shopExt);
             $mainId = $shop->mainId ?? 0;
             $sjId = $shop->sjId ?? 0;
             $customId = $shop->defaultCustomId ?? 0;
@@ -120,7 +127,7 @@ class MtController extends PublicController
                         $mtGoodsSpu = $mtGoods['app_food_code'];
                     }
                 }
-                $params = ['app_poi_code' => $shopId, 'app_spu_code' => $mtGoodsSpu, 'access_token' => 'token_pOgHs0-h06JUsIrMJ3ZKyQ'];
+                $params = ['app_poi_code' => $shopId, 'app_spu_code' => $mtGoodsSpu, 'access_token' => $accessToken];
                 $mgGoodsDetail = $app->retail->getDetail($params);
                 Yii::info('获取商品报错了:' . $mgGoodsDetail . ' ' . json_encode($params));
                 $mgGoodsDetail = json_decode($mgGoodsDetail, true);

+ 19 - 6
app-pt/controllers/MtController.php

@@ -4,6 +4,7 @@ namespace pt\controllers;
 
 use biz\shop\classes\ShopExtClass;
 use common\components\dict;
+use common\components\mtUtil;
 use common\components\util;
 use Shishaoqi\MeituanFlashPurchase\Application;
 use Yii;
@@ -35,24 +36,36 @@ class MtController extends BaseController
         if (isset($ret['status']) == false || $ret['status'] != 0) {
             util::fail('获取access_token失败');
         }
-        $access_token = $ret['access_token'] ?? '';
-        if (empty($access_token)) {
+        $accessToken = $ret['access_token'] ?? '';
+        if (empty($accessToken)) {
             util::fail('access_token为空');
         }
-        $refresh_token = $ret['refresh_token'] ?? '';
-        if (empty($refresh_token)) {
+        $refreshToken = $ret['refresh_token'] ?? '';
+        if (empty($refreshToken)) {
             util::fail('refresh_token为空');
         }
         $expiresIn = $ret['expires_in'] ?? 0;
         $refreshExpiresIn = $ret['re_expires_in'] ?? 0;
         $ext->mtAppPoiCode = $shopId;
-        $ext->mtAccessToken = $access_token;
+        $ext->mtAccessToken = $accessToken;
         $ext->mtAccessTokenExpire = date("Y-m-d H:i:s", (time() + $expiresIn));
-        $ext->mtRefreshToken = $refresh_token;
+        $ext->mtRefreshToken = $refreshToken;
         $ext->mtRefreshTokenExpire = date("Y-m-d H:i:s", (time() + $refreshExpiresIn));
         $ext->save();
         echo "<pre>";
         print_r($ret);
     }
 
+    //刷新
+    public function actionRefresh()
+    {
+        $shopId = Yii::$app->request->get('id');
+        $shopExt = ShopExtClass::getByCondition(['shopId' => $shopId], true);
+        if (empty($ext)) {
+            util::fail('没有找到门店相信息');
+        }
+        $accessToken = mtUtil::getAccessToken($shopExt);
+        echo $accessToken;
+    }
+
 }

+ 58 - 0
common/components/mtUtil.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace common\components;
+
+use Yii;
+use Shishaoqi\MeituanFlashPurchase\Application;
+
+/**
+ * 美团工具箱
+ */
+class mtUtil
+{
+
+    public static function getAccessToken($ext)
+    {
+        $shopId = $ext->shopId ?? '';
+        $mtAccessTokenExpire = $ext->mtAccessTokenExpire ?? '';
+        $date = date("Y-m-d H:i:s");
+        $mtAccessToken = $ext->mtAccessToken ?? '';
+        if ($mtAccessTokenExpire > $date) {
+            return $mtAccessToken;
+        }
+        $mtRefreshTokenExpire = $ext->mtRefreshTokenExpire ?? '';
+        if ($date > $mtRefreshTokenExpire) {
+            noticeUtil::push("门店:{$shopId} 的美团refresh_access_token已经失效,已无法获取access_token,请重点关注", '15280215347');
+        }
+        $mtRefreshToken = $ext->mtRefreshToken ?? '';
+
+        $config = dict::getDict('mtConfig');
+        $app = new Application($config);
+        $appId = $config['app_id'] ?? '';
+        $ret = $app->token->refreshToken($appId, $mtRefreshToken);
+        if (isset($ret['status']) == false || $ret['status'] != 0) {
+            noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,接口返回数据错误,请重点关注", '15280215347');
+            return '';
+        }
+        $accessToken = $ret['access_token'] ?? '';
+        if (empty($accessToken)) {
+            noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,未获取access_token,请重点关注", '15280215347');
+            return '';
+        }
+        $refreshToken = $ret['refresh_token'] ?? '';
+        if (empty($refreshToken)) {
+            noticeUtil::push("门店:{$shopId} 的美团refresh_access_token刷新access_token失败,未获取refresh_token,请重点关注", '15280215347');
+            return '';
+        }
+        $expiresIn = $ret['expires_in'] ?? 0;
+        $refreshExpiresIn = $ret['re_expires_in'] ?? 0;
+        $ext->mtAppPoiCode = $shopId;
+        $ext->mtAccessToken = $accessToken;
+        $ext->mtAccessTokenExpire = date("Y-m-d H:i:s", (time() + $expiresIn));
+        $ext->mtRefreshToken = $refreshToken;
+        $ext->mtRefreshTokenExpire = date("Y-m-d H:i:s", (time() + $refreshExpiresIn));
+        $ext->save();
+        return $accessToken;
+    }
+
+}