ソースを参照

闪送取消授权接口源流程走通

shizhongqi 8 ヶ月 前
コミット
09ca63ea24

+ 20 - 1
app-ghs/controllers/DeliveryController.php

@@ -143,8 +143,27 @@ class DeliveryController extends BaseController
         // 有平台有对应的取消授权接口,有的没有。
         // 有的就对接下,然后再删除数据。没有的直接删除数据就行。
         $platform = Yii::$app->request->get('platform');
+        $delivery = DeliveryAuthTokenClass::getByCondition(['mainId'=>$this->mainId, 'platform'=>$platform]);
+        if($delivery) {
+            if($platform == 'shansong') {
+                $auth = new \common\components\delivery\platform\shansong\Auth();
+                $result = $auth->cancelAuthorization($delivery['accessToken']);
+                if($result['success']) {
+                    // 授权已取消
+                }else{
+                    if($result['message'] == '商户未授权,请授权后再次尝试'){
+                        Yii::info($this->mainId . '--商户未授权,请授权后再次尝试');
+                    }else{
+                        util::fail('取消授权失败:'.$result['message']);
+                    }
+                }
+            }
+        }else{
+            util::fail('取消授权失败,数据未找到');
+        }
+
         $ret = DeliveryAuthTokenClass::deleteByCondition(['mainId'=>$this->mainId, 'platform'=>$platform]);
-        if($ret > 0) {
+        if($ret > 0){
             util::success(['message'=>'取消授权成功']);
         } else {
             util::fail('取消授权失败');

+ 3 - 1
common/base/classes/BaseClass.php

@@ -100,7 +100,9 @@ class BaseClass
     }
 
     /**
-     *根据条件删除一条或多条记录
+     * 根据条件删除一条或多条记录
+     * @param $condition
+     * @return int
      */
     public static function deleteByCondition($condition)
     {

+ 3 - 1
common/base/models/Base.php

@@ -107,7 +107,9 @@ class Base extends ActiveRecord
     }
 
     /**
-     *根据条件删除一条或多条记录
+     * 根据条件删除一条或多条记录
+     * @param $condition
+     * @return int
      */
     public function deleteByCondition($condition)
     {

+ 1 - 2
common/components/delivery/platform/shansong/Auth.php

@@ -271,11 +271,10 @@ class Auth
         ];
 
         // 计算签名
-        $sign = SignHelper::makeSign($params, $this->appSecret, 'md5', true);
+        $sign = SignHelper::makeSign($params, $this->appSecret, 'md5', true, 'shansong');
         $params['sign'] = $sign;
 
         $response = HttpClient::post($url, $params);
-
         Yii::info("[ShansAuthCancel] Response: " . json_encode($response));
 
         if (isset($response['status']) && $response['status'] == 200) {