|
|
@@ -43,15 +43,20 @@ class Weixin extends BaseController
|
|
|
$token = $weixinA->oauth_reuslt($code);
|
|
|
if (!empty($token['access_token'])) {
|
|
|
$userInfo = $weixinA->userinfo($token['access_token']);
|
|
|
- $data['openid'] = $userInfo['openid'];
|
|
|
- $data['nickname'] = $userInfo['nickname'];
|
|
|
- $data['sex'] = $userInfo['sex'];
|
|
|
- $data['language'] = $userInfo['language'];
|
|
|
- $data['city'] = $userInfo['city'];
|
|
|
- $data['province'] = $userInfo['province'];
|
|
|
- $data['country'] = $userInfo['country'];
|
|
|
- $data['avatar'] = $userInfo['headimgurl'];
|
|
|
- (new Member)->where('uid',$request->user['uid'])->save($data);
|
|
|
+ $member = (new Member)->where('uid',$request->user['uid'])->find();
|
|
|
+ if($member['routine_openid']){
|
|
|
+ (new Member)->where('uid',$request->user['uid'])->save(['openid' => $userInfo['openid']]);
|
|
|
+ }else{
|
|
|
+ $data['openid'] = $userInfo['openid'];
|
|
|
+ $data['nickname'] = $userInfo['nickname'];
|
|
|
+ $data['sex'] = $userInfo['sex'];
|
|
|
+ $data['language'] = $userInfo['language'];
|
|
|
+ $data['city'] = $userInfo['city'];
|
|
|
+ $data['province'] = $userInfo['province'];
|
|
|
+ $data['country'] = $userInfo['country'];
|
|
|
+ $data['avatar'] = $userInfo['headimgurl'];
|
|
|
+ (new Member)->where('uid',$request->user['uid'])->save($data);
|
|
|
+ }
|
|
|
return app('json')->success([
|
|
|
'nickname' => $data['nickname'],
|
|
|
'avatar' => $data['avatar']
|
|
|
@@ -69,20 +74,34 @@ class Weixin extends BaseController
|
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
|
public function mp_auth(Request $request){
|
|
|
- $code = trim($request->post('code'));
|
|
|
- if (!$code)
|
|
|
- return app('json')->fail('授权失败,参数有误');
|
|
|
+ $post = UtilService::getMore([
|
|
|
+ ['code', '', 'empty', '参数错误'],
|
|
|
+ ['iv', ''],
|
|
|
+ ['encryptedData', ''],
|
|
|
+ ]);
|
|
|
try {
|
|
|
$mini = Factory::miniProgram(config('weixin')['mini_program']);
|
|
|
- $new_mini = $mini->auth->session($code);
|
|
|
- $data = UtilService::getMore([
|
|
|
- ['iv', ''],
|
|
|
- ['encryptedData', ''],
|
|
|
- ]);
|
|
|
- $decryptedData = $mini->encryptor->decryptData($new_mini['session_key'], $data['iv'], $data['encryptData']);
|
|
|
- dump($decryptedData);die;
|
|
|
+ $new_mini = $mini->auth->session($post['code']);
|
|
|
+ $member = (new Member)->where('uid',$request->user['uid'])->find();
|
|
|
+ if($member['openid']){
|
|
|
+ (new Member)->where('uid',$request->user['uid'])->save(['routine_openid' => $new_mini['openid']]);
|
|
|
+ }else{
|
|
|
+ $userInfo = $mini->encryptor->decryptData($new_mini['session_key'], $post['iv'], $post['encryptedData']);
|
|
|
+ $data['nickname'] = $userInfo['nickName'];
|
|
|
+ $data['sex'] = $userInfo['gender'];
|
|
|
+ $data['language'] = $userInfo['language'];
|
|
|
+ $data['city'] = $userInfo['city'];
|
|
|
+ $data['province'] = $userInfo['province'];
|
|
|
+ $data['country'] = $userInfo['country'];
|
|
|
+ $data['avatar'] = $userInfo['avatarUrl'];
|
|
|
+ (new Member)->where('uid',$request->user['uid'])->save($data);
|
|
|
+ return app('json')->success([
|
|
|
+ 'nickname' => $data['nickname'],
|
|
|
+ 'avatar' => $data['avatar']
|
|
|
+ ]);
|
|
|
+ }
|
|
|
} catch (\Exception $e) {
|
|
|
- return app('json')->fail('获取session_key失败,请检查您的配置!', ['line' => $e->getLine(), 'message' => $e->getMessage()]);
|
|
|
+ return app('json')->fail('获取session_key失败', ['line' => $e->getLine(), 'message' => $e->getMessage()]);
|
|
|
}
|
|
|
}
|
|
|
|