| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Http\Controllers\ApiController;
- use App\Models\Member;
- use App\Servers\MemberOpenServer;
- use App\Servers\MemberServer;
- use App\Servers\PassServer;
- use App\Servers\WeixinServer;
- use Illuminate\Support\Facades\DB;
- /**
- * 会员信息
- */
- class MemberController extends ApiController
- {
- /**
- * 微信小程序注册登录
- */
- function appletLogin()
- {
- $code = request()->input('code');
- if (empty($code)){
- return $this->apiResponseError('缺少必要信息');
- }
- $openInfo = WeixinServer::creatServer()->getAppletsOpenId($code);
- if(!isset($openInfo['openid'])){
- return $this->apiResponseError(empty($openInfo['msg'])?'openid获取失败':$openInfo['msg']);
- }
- DB::beginTransaction();
- // try {
- //检查openid是否存在
- $m_id = MemberOpenServer::creatServer()->getUserId(4,$openInfo['openid'],$openInfo['unionid']);
- if($m_id){
- //重置token
- $token_str = PassServer::creatServer()->getMemberToken($m_id);
- Member::where('id', $m_id)->update(['token_str' => $token_str]);
- $member = ['m_id' => $m_id, 'token' => $token_str];
- }else{
- $member=MemberServer::creatServer()->register();
- if (empty($member)){
- DB::rollBack();
- return $this->apiResponseError('注册失败1');
- }
- $memberOpen=MemberOpenServer::creatServer()->setUserOpenid($member['m_id'],$member['main_id'],4,$openInfo['openid'],$openInfo['unionid']);
- if(empty($memberOpen)){
- DB::rollBack();
- return $this->apiResponseError('注册失败2');
- }
- }
- //清除会员缓存
- MemberServer::creatServer()->delMemberCache($member['m_id']);
- DB::commit();
- return $this->apiResponseSuccess('成功',$member);
- // }catch (\Exception $e){
- // DB::rollBack();
- // return $this->apiResponseError('注册失败');
- // }
- }
- }
|