作者 郭文星

'2023-5-29'

@@ -37,10 +37,10 @@ class Wechat extends Api @@ -37,10 +37,10 @@ class Wechat extends Api
37 } 37 }
38 $this->success('配置获取成功', json_decode($config,true)); 38 $this->success('配置获取成功', json_decode($config,true));
39 } 39 }
40 - 40 +
41 /* 41 /*
42 服务器跳转授权code测试 42 服务器跳转授权code测试
43 - 43 +
44 https://coupon.xp.yn.cn/index.php/api/v1/Wechat/test_code 44 https://coupon.xp.yn.cn/index.php/api/v1/Wechat/test_code
45 */ 45 */
46 public function test_code(){ 46 public function test_code(){
@@ -54,17 +54,17 @@ class Wechat extends Api @@ -54,17 +54,17 @@ class Wechat extends Api
54 $redirect = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$APPID&redirect_uri=$REDIRECT_URI&response_type=code&scope=$SCOPE&state=STATE#wechat_redirect"; 54 $redirect = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$APPID&redirect_uri=$REDIRECT_URI&response_type=code&scope=$SCOPE&state=STATE#wechat_redirect";
55 $curUrl = request()->url(true); 55 $curUrl = request()->url(true);
56 header("Location:".$redirect); 56 header("Location:".$redirect);
57 - 57 +
58 }else{ 58 }else{
59 - 59 +
60 //模拟获取code 60 //模拟获取code
61 echo $code; 61 echo $code;
62 die; 62 die;
63 //解析code 63 //解析code
64 $user = $app->oauth->user(); 64 $user = $app->oauth->user();
65 - 65 +
66 var_dump($user);die; 66 var_dump($user);die;
67 - /* 67 + /*
68 $user的数据结构 snsapi_userinfo 授权获取 68 $user的数据结构 snsapi_userinfo 授权获取
69 object(Overtrue\Socialite\User)#143 (1) { 69 object(Overtrue\Socialite\User)#143 (1) {
70 ["attributes":protected]=> 70 ["attributes":protected]=>
@@ -140,18 +140,18 @@ class Wechat extends Api @@ -140,18 +140,18 @@ class Wechat extends Api
140 // $user->getToken(); // access_token, 比如用于地址共享时使用 140 // $user->getToken(); // access_token, 比如用于地址共享时使用
141 } 141 }
142 } 142 }
143 - 143 +
144 /* 144 /*
145 2.网页授权 145 2.网页授权
146 2.1前端打开则跳转到授权页 由前端自行配置 146 2.1前端打开则跳转到授权页 由前端自行配置
147 - appid 147 + appid
148 redirect_uri前端的路由首位, 148 redirect_uri前端的路由首位,
149 scope=snsapi_base 静默只能获取openid, 149 scope=snsapi_base 静默只能获取openid,
150 =snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 ) 150 =snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
151 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 151 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
152 2.2 由微信回跳后,获取code 和 state 参数,由前端post code给后台 152 2.2 由微信回跳后,获取code 和 state 参数,由前端post code给后台
153 */ 153 */
154 - 154 +
155 public function get_user_info_by_code (){ 155 public function get_user_info_by_code (){
156 $user_id = 0; 156 $user_id = 0;
157 try{ 157 try{
@@ -178,12 +178,13 @@ class Wechat extends Api @@ -178,12 +178,13 @@ class Wechat extends Api
178 Db::name('user')->where($w)->update($save); 178 Db::name('user')->where($w)->update($save);
179 } 179 }
180 //注册成功 继续注册分销关系 180 //注册成功 继续注册分销关系
181 - 181 +
182 //设置同域下的登录缓存 182 //设置同域下的登录缓存
183 $user = Db::name('user')->where($w)->find(); 183 $user = Db::name('user')->where($w)->find();
184 //登录成功 存储服务器本地 184 //登录成功 存储服务器本地
185 - $this->auth->direct($user['id']);  
186 - 185 + $res=$this->auth->direct($user['id']);
  186 + print_r([$res,$this->auth->getUser()]);return;
  187 +
187 //返回给前端 188 //返回给前端
188 $user_id = $user['id']; 189 $user_id = $user['id'];
189 }catch(\Exception $e){ 190 }catch(\Exception $e){
@@ -194,11 +195,11 @@ class Wechat extends Api @@ -194,11 +195,11 @@ class Wechat extends Api
194 }else{ 195 }else{
195 $this->error('code处理失败'); 196 $this->error('code处理失败');
196 } 197 }
197 - 198 +
198 } 199 }
199 -  
200 -  
201 - 200 +
  201 +
  202 +
202 /* 203 /*
203 3.订单支付 前端请求 204 3.订单支付 前端请求
204 3.1 入库 订单状态 205 3.1 入库 订单状态
@@ -221,7 +222,7 @@ class Wechat extends Api @@ -221,7 +222,7 @@ class Wechat extends Api
221 return $this->error('用户信息错误'); 222 return $this->error('用户信息错误');
222 } 223 }
223 $userInfo = Db::name('user')->where(['id'=>$user_id])->find(); 224 $userInfo = Db::name('user')->where(['id'=>$user_id])->find();
224 - 225 +
225 $out_trade_no = $order_no ='168532907259455'; 226 $out_trade_no = $order_no ='168532907259455';
226 $app = WehcatModule::getInstance()->initWechatPay(); 227 $app = WehcatModule::getInstance()->initWechatPay();
227 $result = $app->order->unify([ 228 $result = $app->order->unify([
@@ -236,14 +237,14 @@ class Wechat extends Api @@ -236,14 +237,14 @@ class Wechat extends Api
236 $jssdk = $app->jssdk; 237 $jssdk = $app->jssdk;
237 $config = $jssdk->sdkConfig($prepay_id); 238 $config = $jssdk->sdkConfig($prepay_id);
238 return $this->success('下单成功',$config); 239 return $this->success('下单成功',$config);
239 - 240 +
240 }else{ 241 }else{
241 return $this->error('下单失败',$result); 242 return $this->error('下单失败',$result);
242 } 243 }
243 - 244 +
244 } 245 }
245 -  
246 - 246 +
  247 +
247 /* 248 /*
248 微信支付回调信息 249 微信支付回调信息
249 */ 250 */
@@ -254,12 +255,12 @@ class Wechat extends Api @@ -254,12 +255,12 @@ class Wechat extends Api
254 file_put_contents("1_cc.log",json_encode($message),FILE_APPEND); 255 file_put_contents("1_cc.log",json_encode($message),FILE_APPEND);
255 $order = $message['out_trade_no']; 256 $order = $message['out_trade_no'];
256 if ($message['return_code'] === 'SUCCESS' && $message['result_code'] === 'SUCCESS') { 257 if ($message['return_code'] === 'SUCCESS' && $message['result_code'] === 'SUCCESS') {
257 - 258 +
258 } else { 259 } else {
259 return $fail('通信失败,请稍后再通知我'); 260 return $fail('通信失败,请稍后再通知我');
260 } 261 }
261 262
262 - 263 +
263 return true; // 返回处理完成 264 return true; // 返回处理完成
264 }); 265 });
265 $response->send(); // return $response; 266 $response->send(); // return $response;