wesmiler 2 miesięcy temu
rodzic
commit
62eb10dd82

+ 3 - 33
app/Http/Controllers/Api/v1/TestController.php

@@ -3,13 +3,7 @@
 namespace App\Http\Controllers\Api\v1;
 
 use App\Http\Controllers\Api\webApp;
-use App\Services\Api\MemberService;
-use App\Services\Api\MessageService;
-use App\Services\Common\PayOrdersService;
-use App\Services\DyrPayService;
-use App\Services\Kd100Service;
 use App\Services\MpService;
-use App\Services\RedisService;
 
 /**
  * 测试
@@ -22,34 +16,10 @@ class TestController extends webApp
 
     public function check()
     {
-//        $result = Kd100Service::make()->query('YT8824762286422','17877188025','yuantong');
-        $productId = '1105';
-        $amount = 50;
-        $orderNo = get_order_num('PR');
-        $orders =  PayOrdersService::make()->getCheckOrderList();
-        dump($orders);
-        $result = '';
-        if($orders){
-            $result = PayOrdersService::make()->checkOrder($orders[0]);
-            dump(PayOrdersService::make()->getError());
-            dump($result);
-        }
+        $result =  MpService::make()->getMiniShareLink('pagesSub/pages/order/detail','no=GX26020500315518211');
+        dump(MpService::make()->getError());
+        dump($result);
 
-        //array:3 [▼
-        //  "errno" => 0
-        //  "errmsg" => "提交成功"
-        //  "data" => array:9 [▼
-        //    "id" => 505535
-        //    "order_number" => "QWE251227505535"
-        //    "mobile" => "17877188025"
-        //    "product_id" => 1105
-        //    "total_price" => "47.00"
-        //    "create_time" => 1766804483
-        //    "guishu" => "广西南宁"
-        //    "title" => "苹果快充三网50话费快充"
-        //    "out_trade_num" => "PR25122711012274882"
-        //  ]
-        //]
         return showJson('操作成功', true, $result);
     }
 }

+ 1 - 0
app/Services/Api/MemberService.php

@@ -726,6 +726,7 @@ class MemberService extends BaseService
         $this->error = '绑定收款账号成功';
         return true;
     }
+
     /**
      * 获取代理等级
      * @param $uid

+ 64 - 0
app/Services/MpService.php

@@ -31,6 +31,8 @@ class MpService extends BaseService
         'getToken' => 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s',
         // 获取二维码
         'getQrcode' => 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s&scene=%s&page=%s&env_version=%s',
+        // 生成小程序分享链接
+        'getShareLink'=>'https://api.weixin.qq.com/wxa/generatescheme?access_token=%s',
         // 获取用户信息
         'getUserInfo' => 'https://api.weixin.qq.com/sns/jscode2session',
         // 获取公众号accessToken和openid
@@ -184,6 +186,68 @@ class MpService extends BaseService
     }
 
     /**
+     * 小程序分享链接
+     * @param $path 页面路径
+     * @param $query 地址参数
+     * @param false $refresh
+     * @return false|string
+     */
+    public function getMiniShareLink($path, $query,$isExpire=false, $refresh=false)
+    {
+        try {
+            if(empty($path) || empty($query)){
+                $this->error = '缺少链接参数';
+                return false;
+            }
+
+            if(empty($this->mpAppid) || empty($this->mpAppSecret)){
+                $this->error = '小程序参数未配置';
+                return false;
+            }
+
+            if(!$token = $this->getAccessToken())
+            {
+                $this->error = '获取token失败';
+                return false;
+            }
+
+            $cacheKey = "caches:members:mpShare_{$this->mpAppid}:".md5($path.$query);
+            $link = RedisService::get($cacheKey);
+            if($link && !$refresh){
+                return $link;
+            }
+
+            $data = [
+                'path'=>$path,
+                'query'=>$query,
+                'is_expire'=> $isExpire,
+            ];
+
+            $url = sprintf($this->apiUrls['getShareLink'], $token);
+            var_dump($url);
+            $result = curl_post($url, json_encode($data));
+            var_dump($result);
+            $datas = $result? json_decode($result, true) : [];
+            var_dump($datas);
+            $this->saveLog($cacheKey.'_result', ['path'=>$path,'query'=>$query,'url'=>$url,'result'=>$result,'date'=>date('Y-m-d H:i:s')]);
+            $errcode = isset($datas['errcode'])? $datas['errcode'] : '';
+            $errmsg = isset($datas['errmsg'])? $datas['errmsg'] : '';
+            $link ='';
+            if($errcode){
+                $this->error = $errmsg? $errmsg : '获取二维码失败';
+                return false;
+            }
+
+            RedisService::set($cacheKey,$link, rand(3600,7200));
+            return $result;
+        }catch (\Exception $e){
+            $this->error = $e->getMessage();
+            $this->saveLog($cacheKey.'_error', ['path'=>$path,'query'=>$query,'error'=>$this->error,'trace'=>$e->getTrace(),'date'=>date('Y-m-d H:i:s')]);
+            return false;
+        }
+    }
+
+    /**
      * 获取授权信息
      * @param $code
      * @param $platform mp-小程序,wechat-公众号