...
|
...
|
@@ -37,10 +37,10 @@ class Wechat extends Api |
|
|
}
|
|
|
$this->success('配置获取成功', json_decode($config,true));
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
服务器跳转授权code测试
|
|
|
|
|
|
|
|
|
https://coupon.xp.yn.cn/index.php/api/v1/Wechat/test_code
|
|
|
*/
|
|
|
public function test_code(){
|
...
|
...
|
@@ -54,17 +54,17 @@ class Wechat extends Api |
|
|
$redirect = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$APPID&redirect_uri=$REDIRECT_URI&response_type=code&scope=$SCOPE&state=STATE#wechat_redirect";
|
|
|
$curUrl = request()->url(true);
|
|
|
header("Location:".$redirect);
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
//模拟获取code
|
|
|
echo $code;
|
|
|
die;
|
|
|
//解析code
|
|
|
$user = $app->oauth->user();
|
|
|
|
|
|
|
|
|
var_dump($user);die;
|
|
|
/*
|
|
|
/*
|
|
|
$user的数据结构 snsapi_userinfo 授权获取
|
|
|
object(Overtrue\Socialite\User)#143 (1) {
|
|
|
["attributes":protected]=>
|
...
|
...
|
@@ -140,18 +140,18 @@ class Wechat extends Api |
|
|
// $user->getToken(); // access_token, 比如用于地址共享时使用
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/*
|
|
|
2.网页授权
|
|
|
2.1前端打开则跳转到授权页 由前端自行配置
|
|
|
appid
|
|
|
appid
|
|
|
redirect_uri前端的路由首位,
|
|
|
scope=snsapi_base 静默只能获取openid,
|
|
|
=snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
|
|
|
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
|
|
|
2.2 由微信回跳后,获取code 和 state 参数,由前端post code给后台
|
|
|
*/
|
|
|
|
|
|
|
|
|
public function get_user_info_by_code (){
|
|
|
$user_id = 0;
|
|
|
try{
|
...
|
...
|
@@ -178,12 +178,13 @@ class Wechat extends Api |
|
|
Db::name('user')->where($w)->update($save);
|
|
|
}
|
|
|
//注册成功 继续注册分销关系
|
|
|
|
|
|
|
|
|
//设置同域下的登录缓存
|
|
|
$user = Db::name('user')->where($w)->find();
|
|
|
//登录成功 存储服务器本地
|
|
|
$this->auth->direct($user['id']);
|
|
|
|
|
|
$res=$this->auth->direct($user['id']);
|
|
|
print_r([$res,$this->auth->getUser()]);return;
|
|
|
|
|
|
//返回给前端
|
|
|
$user_id = $user['id'];
|
|
|
}catch(\Exception $e){
|
...
|
...
|
@@ -194,11 +195,11 @@ class Wechat extends Api |
|
|
}else{
|
|
|
$this->error('code处理失败');
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
3.订单支付 前端请求
|
|
|
3.1 入库 订单状态
|
...
|
...
|
@@ -221,7 +222,7 @@ class Wechat extends Api |
|
|
return $this->error('用户信息错误');
|
|
|
}
|
|
|
$userInfo = Db::name('user')->where(['id'=>$user_id])->find();
|
|
|
|
|
|
|
|
|
$out_trade_no = $order_no ='168532907259455';
|
|
|
$app = WehcatModule::getInstance()->initWechatPay();
|
|
|
$result = $app->order->unify([
|
...
|
...
|
@@ -236,14 +237,14 @@ class Wechat extends Api |
|
|
$jssdk = $app->jssdk;
|
|
|
$config = $jssdk->sdkConfig($prepay_id);
|
|
|
return $this->success('下单成功',$config);
|
|
|
|
|
|
|
|
|
}else{
|
|
|
return $this->error('下单失败',$result);
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
微信支付回调信息
|
|
|
*/
|
...
|
...
|
@@ -254,12 +255,12 @@ class Wechat extends Api |
|
|
file_put_contents("1_cc.log",json_encode($message),FILE_APPEND);
|
|
|
$order = $message['out_trade_no'];
|
|
|
if ($message['return_code'] === 'SUCCESS' && $message['result_code'] === 'SUCCESS') {
|
|
|
|
|
|
|
|
|
} else {
|
|
|
return $fail('通信失败,请稍后再通知我');
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true; // 返回处理完成
|
|
|
});
|
|
|
$response->send(); // return $response;
|
...
|
...
|
|