微信开发获取手机号_微信公众号开发 获取微信绑定的手机号 - CSDN
  • 都知道微信公众号获取不到手机号,但是小程序可以。 今天大早晨老大死磕非要我公众号授权获取到手机号。...第三部:网页授权成功之后调用小程序,授权获取手机号 第四部:小程序获取到手机号成功之后调回到网页 ...

    都知道微信公众号获取不到手机号,但是小程序可以。

    今天大早晨老大死磕非要我公众号授权获取到手机号。没办法我还是有其他方法解决。

    第一步:服务号添加一个小程序,网上有很多小程序授权的代码。确定小程序可以授权成功并且能获取到手机号

    第二部:服务号网页授权成功获取到open_id记录到用户表里面

    第三部:网页授权成功之后调用小程序,授权获取手机号

    第四部:小程序获取到手机号成功之后调回到网页

    这里就成功使用微信公众号获取到用户手机号

    h5跳转到小程序

    wx.miniProgram.navigateTo({url: '/pages/index/kjcgcon/kjcgcon'})

    如果要传值可以直接在url后面加参数
    wx.miniProgram.navigateTo({url: '/pages/scenic/scenic_detail/kjcg?uid='+uid})

    注意要添加js
    <script src='https://res.wx.qq.com/open/js/jweixin-1.3.0.js'></script>

    小程序跳转到的H5页面,

    <web-view src="https://zgl.seamo.cn/zglh5/kjzjlist1.html"></web-view>
    

    参考资料

    https://developers.weixin.qq.com/community/develop/doc/00006243d68f38dfea5639dcb56000

     

    展开全文
  • 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由API来调用,需用<button>组件的点击来触发。 注意:目前该接口针对非个人开发者,且完成了认证的小程序开放。需谨慎使用,若用户举报较多...

    微信小程序获取微信绑定授权手机号getPhoneNumber全流程及出现手机号带*号问题详解

     

    微信小程序文档中给出如下示例

    获取微信用户绑定的手机号,需先调用login接口。

    因为需要用户主动触发才能发起获取手机号接口,所以该功能不由API来调用,需用<button>组件的点击来触发。

    注意:目前该接口针对非个人开发者,且完成了认证的小程序开放。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

    使用方法

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

    注意

    在回调中调用wx.login登录,可能会刷新登录态。此时服务器使用code换取的sessionKey不是加密时使用的sessionKey,导致解密失败。建议开发者提前进行login;或者在回调中先使用checkSession进行登录态检查,避免login刷新登录态。

    例子

    <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button>
    
    Page({ 
        getPhoneNumber: function(e) { 
            console.log(e.detail.errMsg) 
            console.log(e.detail.iv) 
            console.log(e.detail.encryptedData) 
        } 
    })

    返回参数说明

    参数 类型 说明 最低版本
    encryptedData String 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法  
    iv String 加密算法的初始向量,详细见加密数据解密算法  
    cloudID String 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 2.8.0

    敏感数据有两种获取方式,一是使用 加密数据解密算法 将 encryptedData 在开发者后台解密,二是使用云调用直接通过 cloudID 获取开放数据

    获取得到的开放数据为以下 json 结构:

    {
        "phoneNumber": "13580006666",  
        "purePhoneNumber": "13580006666", 
        "countryCode": "86",
        "watermark":
        {
            "appid":"APPID",
            "timestamp":TIMESTAMP
        }
    }

     

    但是到这里你会发现其实根本不详尽尤其是解密和错误代码方面

     

    首先如手册所述,解析加密数据包不太明白我给大家贴个示例

    getPhoneNumber: function (e) {
    
            console.log(e.detail.iv);
    
            console.log(e.detail.encryptedData);
    
            wx.login({
    
                success: res => {
    
                    console.log(res.code);
    
                    wx.request({
    
                        url: 'https://你的解密地址',
    
                        data: {
    
                            'encryptedData': encodeURIComponent(e.detail.encryptedData),
    
                            'iv': e.detail.iv,
    
                            'code': res.code
    
                        },
    
                        method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
    
                        header: {
    
                            'content-type':'application/json'
    
                        }, // 设置请求的 header
    
                        success: function (res) {
    
                            if (res.status ==1) {//我后台设置的返回值为1是正确
    
                            //存入缓存即可
    
                            wx.setStorageSync('phone', res.phone);
    
                            }
    
                        },
    
                        fail: function (err) {
    
                            console.log(err);
    
                        }
    
                    })
    
                }
    
            })
    
        }

     

    后台解析代码就是利用传过去的三个值,来进行解析每个语言解析方式不同请下载样例

    微信官方提供了多种编程语言的示例代码(点击下载)。每种语言类型的接口名字均一致。调用方式可以参照示例。

     

    注意解析方式跟解析用户信息是一个解析方式!!!!

     

    在这里小编遇到了一个问题解析回的形式虽然跟文档相同但是!

    却是这个样子的数据:

     

    这样的情况其实是因为开发的基础库版库过低造成的

    配置地点在这里:

     

    小编修改为v1.9.1之后呈现形式就如同官网手册 一样了

     

    {
        "phoneNumber": "13580006666",  
        "purePhoneNumber": "13580006666", 
        "countryCode": "86",
        "watermark":
        {
            "appid":"APPID",
            "timestamp":TIMESTAMP
        }
    }

    至此获取微信绑定的用户手机号完成!

     

    还有一点要注意你的开发版本上去了,但是用户不一定更新了

    所以微信后台有这样一个配置~

     

    由于发文时间较远,我只进行了死链接的替换。小程序早就出了提示用户版本更新的代码,有需要的小伙伴可以去手册查阅。

    地址:https://developers.weixin.qq.com/miniprogram/dev/api/base/update/UpdateManager.html

    剩下的问题欢迎在下面评论,第一次写博客希望对大家有帮助!!!

     

    我在网上已经看到几篇转载的,个人之作转载请注明出处!

    csdn博客-大国的博客

    原文地址:https://blog.csdn.net/weixin_41818665/article/details/79509792

    展开全文
  • 微信开发获取手机号

    2020-04-01 15:51:46
    /** *获取微信手机号 */ //加密解密的工具类 public static final StringAES="AES"; ...public static final String AES_CBC_...@ApiOperation(value="微信家长端手机号获取",notes="微信家长端手机号获取")...

    /**

    *获取微信的手机号

    */

    //加密解密的工具类

    public static final StringAES="AES";

     

    public  static final String AES_CBC_PADDING="AES/CBC/PKCS7Padding";

     

     

    @ApiOperation(value="微信家长端手机号获取",notes="微信家长端手机号获取")

    @ApiImplicitParams({

             @ApiImplicitParam(name="encryptedData",required=true,value="目标密文")

            ,@ApiImplicitParam(name="sessionKey",required=true,value="会话ID")

              ,@ApiImplicitParam(name="iv",required=true,value="加密算法的初始向量")

     })

    @GetMapping("/get_phone.do")

    public  ResultBody getPhone(

    @RequestParam(value="encryptedData",required=true)String  encryptedData

    ,@RequestParam(value="sessionKey",required=true)String    sessionKey

    ,@RequestParam(value="iv",required=true)String  iv

    ){

    try{

    String  result=WxUtils.wxDecrypt(encryptedData,sessionKey,iv);

    JSONObject  json=JSONObject.parseObject(result);

    String   PHONE_NUMBER="phoneNumber";

    if(json.containsKey(PHONE_NUMBER)){

           Stringphone=json.getString("phoneNumber");

          if(StringUtils.isNotBlank(phone)){

               //写自己的有逻辑

                    }else{

     

                    }

             }else{

                     returnResultBody.failed().data("不存在phoneNumber");

              }

        }catch(Exceptione){

                   e.printStackTrace();

             }

                         return    ResultBody.failed().data("获取失败");

          }

     

    展开全文
  • 微信公众号开发文档,浏览后没有任何关于获取微信运动数据的接口 https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1445241432 微信小程序开发文档,浏览后,发现获取微信运动数据的接口  ...

    一、前沿研究

    1. 微信公众号开发文档,浏览后没有任何关于获取微信运动数据的接口

      https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432

    2. 微信小程序开发文档,浏览后,发现获取微信运动数据的接口

             https://developers.weixin.qq.com/miniprogram/dev/api/wx.getWeRunData.html

         3. 研究了相关运动统计小程序和微信公众号排行。 

             列举一下:

             小程序:步数宝、我要运动、SPC运动宝等。

             公众号:微信运动、乐心运动、华为运动健康等。

    二、方案研究

        ​根据多方验证,微信公众号直接获取用户运动数据是不可能的,只能通过其他的工具进行数据存储,然后在微信公众号中展示运动数据信息。

        ​方案一:开发APP,通过App获取手机硬件授权,读取手机运动量数据,然后上传到后台服务器进行数据储蓄。

        ​   优点:数据来源稳定,数据内容信息不受其他平台运行限制,功能可自定义进行扩展。

        ​   缺点:功能不是很大的应用用户会认为占用内存,开发时间长,费用高,还需要开发安卓和苹果两个系统。应用必须保证在后台持续运行,必须获取到手机授权才可读取数据。

        ​方案二:毕竟重点是微信公众号,可以依托于微信平台,开发一个可以获取微信运动数据的小程序,还可以在微信小程序中开发其他相关的功能,然后和微信公众号进行菜单绑定,然后台微信公众号中做一些微信排行的奖励活动。让大家积极地使用,来获取最真实最实时的运动数据。

        ​    ​优点:可快速开发,开发成本低,缩短上线时间。同样是微信公众号,既提高了用户活跃程度,也达到了原有的目的。用户不必再安装应用,再重复获取用户运动授权信息,占用手机内存等。

    三、倾听意见和建议

        ​请相关人员,自己也可以研究一下,或者多多浏览同行的功能实现方案。如果技术上支持,那我们一定可以的。有更好的方法或者方案,可以直接联系我,或者在评论区写下您的见解。

        ​明人不说暗话,我们一直在努力。

     

     

     

    展开全文
  • 小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写。1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-...
  • ![图片说明](https://img-ask.csdn.net/upload/201905/28/1559007710_390413.png)
  • java解析微信获取手机号 我很好奇,java作为最火的语言之一,微信小程序的开发文档里边竟然没有解析小程序手机号的java实例。。。话不多说上代码!!! 1. 根据微信小程序开发文档先在小程序中获取必要的三个参数...
  • 获取手机号 获取微信用户绑定的手机号,需先调用wx.login接口。 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用button组件的点击来触发。 注意:目前该接口针对非个人开发者,且...
  • 当我们在开发微信小程序中,有一个常用的功能,就是获取用户的手机号,然后一键登入小程序,那么手机号如何获取呢?请认真看完本文,保证可以获取到用户的手机号
  • 在前段时间公司开发小程序的项目中,服务端需要配合前端获取当前用户与微信绑定的手机号;需要以下两步: 1.根据前端所传的code通过服务端调微信接口获取openId,sessionkey; 2.根据前端所传的encrypdata,ivdata,...
  • 微信小程序云开发获取手机号码还需要通过code发到微信平台上获得session key来解密取得手机号码 因为企鹅都说过了,云开发是自动鉴权的,不应该还要通过code来解密的啊 所以后面就跟着文档找,试着试着就试出了正确...
  • 获取小程序的手机号,指的是获取绑定用户微信的手机号码,细节什么的我就不多说了,官网说的很详细了 官网:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html 注意...
  • 获取用户微信绑定的手机号需要使用button的"open-type='getPhoneNumber'",在获取之前需要检测(checkSession)是否登录。  wxml: &lt;button open-type="getPhoneNumber" ...
  • 3、在一个就是先获取微信的用户基本信息,然后再获取手机号,如果不能获取到手机号的话,获取用户的微信没绑定手机号,或者拒绝授权手机号,就不让登录。 我用的是先获取手机号,然后再获取用户的基本信息 PHP...
  • 获取微信手机号码

    2020-07-10 20:24:38
    微信开发需要用到的access_token,其实是分为两个种类的,一种是普通的access_token,另一种是网页授权access_token。 普通的access_token,是微信开发者调用微信所提供的各种借口的一个凭证,有效时间为7200秒,也...
  • 而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如既往的乱,如果没有对小程序开发文档有一个整体的了解,搞懂解密流程还是有点难...
  • 这几天是疫情期间,老板为了配合我们公司的...首先,思路要明确,要想获取手机号码,那我们就得微信授权,微信授权的话,那我们就得获取微信的登录,所以第一步,调用微信登录的api: wx.login({ success (res) { ...
  • 小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等, 有了这个组件可以快速获取微信绑定手机号码,无须用户填写。1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open...
  • 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 &lt;button&gt; 组件的点击来触发。 注意:目前该接口针对非个人开发者,且完成了认证的小程序开放。需谨慎使用,若用户...
  • 微信小程序获取手机号官方文档链接: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html wxml文件 点击事件: <button open-type="getPhoneNumber" ...
1 2 3 4 5 ... 20
收藏数 22,440
精华内容 8,976
关键字:

微信开发获取手机号