uin-app 小程序,获取手机号
小程序获取手机号需要客户点击button触发
原生小程序的官方文档代码是
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
但是如果在uin-app开发中也是这样的话,是监听不到获取手机号回调函数的
需要使用以下代码
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">获取用户手机号</button>
监听事件代码在methods里面
<script>
export default {
methods: {
data() {
return {
mobile: '',
password: '',
openid:''
};
},
getPhoneNumber(e) {
console.log('获取手机号回调')
console.log(e)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
},
}
}
getPhoneNumber回调函数中获取到的数据数加密的,还需要解密处理才能得到手机号码,下面是php解密demo,需要注意的是在获取手机号之前需要先调用登录获取登录返回的session_key
public function aesDe($data)
{
$encryptedData = '3ISU/IypKLvNy8kbxwltso7RHVIqbwAKQ4gyWUwRlGTo1Zhyrgl/8ll+fFHbzJOHGnGYZcQV/OgML/LMfEVSqQ==111';
//encryptedData getPhoneNumber回调函数中获取
$key = 'AAs9S3Z0iHmcV5j111NSZRR7g==';
//登录中 请求https://open.kuaishou.com/oauth2/mp/code2session 返回的 session_key
$iv = '1bWGrlPSEN7111he1wlwEnZyA==';
//ivgetPhoneNumber回调函数中获取
$method = 'AES-128-CBC';
$encryptedData = $data['encryptedData'];
$key = base64_decode($key);
$iv = base64_decode($iv);
$res = openssl_decrypt(base64_decode($encryptedData),$method, $key, OPENSSL_RAW_DATA, $iv);
return json_decode($res,true);
}