WIN-2308041133\Administrator 6 meses atrás
pai
commit
7e13c06d7c
1 arquivos alterados com 41 adições e 17 exclusões
  1. 41 17
      application/api/controller/Wechat.php

+ 41 - 17
application/api/controller/Wechat.php

@@ -113,10 +113,9 @@ class Wechat extends Api
         $peice = intval($request->param('peice'));
         $uid = intval($request->param('uid'));
         $plan_id = WechatPlan::where('price',$peice)->value('plan_id');
+        $p_id = WechatPlan::where('price',$peice)->value('id');
         $plan_id=11;
-        @file_put_contents("auth.txt", json_encode(input()));
         try {
-
 //            $notify_url=Request::instance()->domain() . "/api/wechat/notify/" . $cid; //回调接口
             $app_id='wx5681205d1ef4d9d3';
             $mch_id ='1623907696';
@@ -126,9 +125,14 @@ class Wechat extends Api
 //            $num = time() + mt_rand(10, 999999) . '' . substr($msec, 2, 3);//生成随机数
 //            $request_serial=$this->generateUniqueSerialNumber();
             $request_serial=WechatPlanRecord::where('is_signing',0)->order('request_serial desc')->value('request_serial');
+            if (empty($request_serial)){
+                $request_serial=100000;
+            }else{
+                $request_serial=$request_serial+1;
+            }
             $contract_display_account='咸宁红十字';
             $timestamp=time();
-            $version=1.0;
+            $version='1.0';
             $array = array(
                 'appid' => $app_id,
                 'mch_id' => $mch_id,
@@ -142,18 +146,38 @@ class Wechat extends Api
                'version' => $version,
 
             );
+            var_dump($uid);
+            var_dump($peice);
             var_dump($array);
-            ksort($array);
+            ksort($array);die();
             $xml='';
             foreach ($array as $key => $value){
                 $xml=$xml.$key.'='.$value.'&';
             }
             $xml=substr($xml, 0, -1);
-            var_dump($xml);
+            @file_put_contents("quanju.txt", json_encode($xml).'签约内容');
             $sign=$this->md5_sign($xml,'192006250b4c09247ec02edce69f6a2d');
-            var_dump($sign);die();
-            $url=$this->OfficialAccountSigning($app_id,$mch_id,$plan_id,$contract_code,$request_serial,$contract_display_account,$notify_url,$version,$sign,$timestamp);
-            return $url;
+            @file_put_contents("quanju.txt", $sign.'签名');
+            $url='https://api.mch.weixin.qq.com/papay/entrustweb?'.$xml.'&sign='. $sign;
+            @file_put_contents("quanju.txt", $url.'链接');
+            $response = $this->curl_get($url);
+//            $url=$this->OfficialAccountSigning($app_id,$mch_id,$plan_id,$contract_code,$request_serial,$contract_display_account,$notify_url,$version,$sign,$timestamp);
+            @file_put_contents("quanju.txt", $response.'返回链接');
+
+            WechatPlanRecord::create([
+                'uid' => $uid,
+                'plan_id' => $p_id,
+                'peice' => $peice,
+                'is_signing' => 0,
+               'request_serial' => $request_serial,
+                'contract_code' => $contract_code,
+                'contract_display_account' => $contract_display_account,
+                'createtime' => time(),
+                'cid' => 12,
+                'wechat_plan_id' => $plan_id,
+            ]);
+
+            return $response;
         } catch (Exception $e) {
             @file_put_contents("error.txt", $e->getFile() . '-', $e->getLine(), '-' . $e->getMessage());
         }
@@ -211,16 +235,16 @@ class Wechat extends Api
         return $content;
 
     }
-    public function curl_get($url = '', array $name, $timeout = 100)
+    public function curl_get(string $url, $timeout = 100)
     {
-        if (!empty($name)) {
-            $data = '&';
-            foreach ($name as $k => $v) {
-                $data = $data . $k . '=' . $v.'&';
-            }
-            $url = $url . $data;
-        }
-        $url = substr($url,0,-1);
+//        if (!empty($name)) {
+//            $data = '&';
+//            foreach ($name as $k => $v) {
+//                $data = $data . $k . '=' . $v.'&';
+//            }
+//            $url = $url . $data;
+//        }
+//        $url = substr($url,0,-1);
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_HEADER, false); //是否显示头部