找回密码
 会员注册
查看: 110|回复: 0

微信小程序获取用户手机号码(后台asp版)

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962990
发表于 2024-2-29 08:34:42 | 显示全部楼层 |阅读模式

前端微信小程序获取code,后台使用asp获取session_key和openid;然后结合iv和encryptedData解密出微信用户手机号码

【效果图】

在这里插入图片描述

在这里插入图片描述

【开发流程】
第1步:wx.login获取code
第2步:传递code到服务器,获取session_key和openid
第3步:参考官方文档getPhoneNumber,获取iv和encryptedData
第4步:解密返回数据,获取手机号码

【第1步:wx.login获取code】
调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 auth.code2Session,使用 code 换取 openid 和 session_key 等信息

【第2步:传递code到服务器,获取session_key和openid】
官方文档地址
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
参考示例:GET 方法https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

小程序代码,wxml

  1. <button type="primary" bindtap="mycode">获取code</button>
复制代码

小程序代码,js

  1. mycode:function(e){
  2. wx.login({
  3. success:function(res){
  4. console.log(res)
  5. console.log(res.code)
  6. var code = res.code
  7. wx.request({
  8. url: 'http://www.yaoyiwangluo.com/tel/asp.asp',
  9. data:{
  10. code
  11. },
  12. success:function(res2){
  13. //console.log("服务器:" + res2)
  14. console.log("服务器:" + res2.data)
  15. console.log("openid:" + res2.data.openid)
  16. console.log("session_key:" + res2.data.session_key)
  17. }
  18. })
  19. }
  20. })
  21. }
复制代码

后台asp代码

  1. <!--#include file="Fun.asp" -->
  2. <%
  3. Response.Charset = "utf-8"
  4. Session.CodePage = 65001
  5. str_code = request.QueryString("code")
  6. 'response.write str_code
  7. str_token = ""
  8. 'https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
  9. str_token = str_token & "https://api.weixin.qq.com/sns/jscode2session"
  10. str_token = str_token & "?appid=wx686e9a0d46f8e***&secret=9f4a19057b35276dbf8710741b5fb***"
  11. str_token = str_token & "&js_code="&str_code&"&grant_type=authorization_code"
  12. neirong_token = getHTTPPage2(str_token)
  13. response.write neirong_token
  14. %>
复制代码

【第3步:参考官方文档getPhoneNumber,获取iv和encryptedData】
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。
注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

【第4步:解密返回数据,获取手机号码】
官方文档:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和unionId ),接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据( encryptedData )进行对称解密。 解密算法如下:
微信官方提供了多种编程语言的示例代码(点击下载)。
下载地址: https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip

欢迎收看完整的视频课程
微信小程序获取用户手机号码(后台asp版)

在这里插入图片描述


来源:https://blog.csdn.net/u013818205/article/details/103662862
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:44 , Processed in 0.352801 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表