700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 微信小程序获取手机号 并 使用php解密

微信小程序获取手机号 并 使用php解密

时间:2021-02-11 15:10:27

相关推荐

微信小程序获取手机号 并 使用php解密

注:个人开发必须使用测试号

使用方法:需要将button组件open-type的值设置为getPhoneNumber,当用户点击并同意之后,可以通过bindgetphonenumber事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合session_key以及app_id进行解密获取手机号。

上干货:

微信官方文档:https://developers./miniprogram/dev/framework/open-ability/getPhoneNumber.html

//微信小程序 open-type="getPhoneNumber"<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

getPhoneNumber (e) {let iv = e.detail.ivlet encryptedData = e.detail.encryptedDatalet token = wx.getStorageSync('token')wx.request({url: '/api/phone',data:{iv,encryptedData,token},method:'POST',success:res=>{}})}

注意:iv、encryptedData是必要参数

后端代码:以php(laravel8.5)为例

//获取手机号public function getPhoneNumber(Request $request){$params = $request->all();$user_id = (new Token())->chekToken($params['token']);try{//获取用户信息$user = User::where('id',$user_id)->first();$aesKey = base64_decode($user->session_key);$aesIV = base64_decode($params['iv']);$aesCipher = base64_decode($params['encryptedData']);$result = openssl_decrypt($aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);$phoneNumber = json_decode($result, true)['purePhoneNumber'];//更改手机号$user->mobile = $phoneNumber;$user->save();return ['error_code' => 0, 'data' => '', 'msg' => '手机号获取成功'];}catch (\Exception $e){return ['error_code' => 10002, 'data' => '', 'msg' => '手机号获取失败'];}}

到这里基本就完成了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。