js代码:
- <button class='shouquan' open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">手机号登录</button>
- getPhoneNumber: function (e) {
- var that = this;
- if (e.detail.errMsg == "getPhoneNumber:ok") {
- var code = e.detail.code; //返回code
- tt.request({
- url: app.globalData.api + "phone",
- data: {
- 'type':'douyin',
- "code": code,
- "encryptedData" : e.detail.encryptedData,
- "iv" : e.detail.iv,
- "aid":app.globalData.aid
- },
- method: 'POST',
- header: {
- 'content-type': 'application/x-www-form-urlencoded',
- 'x-safecode': app.globalData.safecode,
- },
- success(){
- if(res.data.code == 1){
- let data = res.data.data;
- tt.setStorageSync('userInfo', data);
- tt.showToast({
- title: '授权成功!!',
- icon: 'success',
- duration: 1500,
- success: function () {
- tt.navigateTo({
- url: '/pages/member/index/index',
- })
- }
- })
- }else{
- tt.showModal({
- content: res.data.msg,
- confirmText: '确定',
- cancelText: '取消'
- });
- }
- }
- })
- }else{
- tt.showModal({
- content: "无法获取手机号",
- confirmText: '确定',
- cancelText: '取消'
- });
- }
- },
php端代码:
- $ttapi = 'https://developer.toutiao.com/api/apps/v2/jscode2session?appid='.$appid.'&secret='.$appSecret.'&code='.$code;
- $in = httpGet($ttapi);
- $in = json_decode($in,true);
- $session_key= $in['session_key'];
- $openid = $in['openid'];
- //解密手机号
- $phoneInfo = openssl_decrypt(base64_decode($idata,true), 'AES-128-CBC', base64_decode($session_key), OPENSSL_RAW_DATA, base64_decode($iv));
- if(!$phoneInfo){
- $this->_json(0, 'error', '获取手机号失败');
- }else{
- $phone = json_decode($phoneInfo,true)['phoneNumber'];
- }
文章点评