Merge branches 'dev_aliyun' and 'develop' of https://bdgit.educoder.net/Hjqreturn/educoder into develop
	
		
	
				
					
				
			
						commit
						3f008d154d
					
				| @ -1,11 +1,32 @@ | ||||
| class Oauth::WechatController < Oauth::BaseController | ||||
|   def create | ||||
|     user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params) | ||||
|     # user, new_user = Oauth::CreateOrFindWechatAccountService.call(current_user ,params) | ||||
| 
 | ||||
|     successful_authentication(user) if !new_user | ||||
|     begin | ||||
|       code = params['code'].to_s.strip | ||||
|       tip_exception("code不能为空") if code.blank? | ||||
|       new_user = false | ||||
| 
 | ||||
|       result = WechatOauth::Service.access_token(code) | ||||
|       result = WechatOauth::Service.user_info(result['access_token'], result['openid']) | ||||
| 
 | ||||
|       # 存在该用户 | ||||
|       open_user = OpenUsers::Wechat.find_by(uid: result['unionid']) | ||||
|       if open_user.present? && open_user.user.present? | ||||
|         successful_authentication(open_user.user) | ||||
|       else | ||||
|         if current_user.blank? || !current_user.logged? | ||||
|           new_user = true | ||||
|           set_session_openid(result['openid']) | ||||
|           set_session_unionid(result['unionid']) | ||||
|         else | ||||
|           OpenUsers::Wechat.create!(user: current_user, uid: result['unionid']) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       render_ok(new_user: new_user) | ||||
|   rescue Oauth::CreateOrFindWechatAccountService::Error => ex | ||||
|     rescue WechatOauth::Error => ex | ||||
|       render_error(ex.message) | ||||
|     end | ||||
|   end | ||||
| end | ||||
					Loading…
					
					
				
		Reference in new issue