23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑

这篇具有很好参考价值的文章主要介绍了23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景
微信小程序手机号授权接口,从23年8月开始实行付费验证。
文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getRealtimePhoneNumber.html
 
新版手机号授权说明如下:
自2023年8月28日起
【手机号实时验证组件】将需要付费使用。标准单价为:每次组件调用成功,收费0.04元。
【手机号快速验证组件】将需要付费使用。标准单价为:每次组件调用成功,收费0.03元。
两者组件区别是:
  1. 【手机号实时验证组件】:平台会对号码进行验证,但不保证是实时验证
  2. 【手机号实时验证组件】:在每次请求时,平台均会对用户选择的手机号进行实时验证
小程序后台付费管理页面,可以购买次数。如下图(每个小程序账号两个组件各有1000次体验额度,开发测试可以用)

23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑

 

用这个组件可以直接用code获取用户手机号,不需要再用SessionKey去解密手机号了。
正好要做一个小程序项目,打算用新的组件做用户授权。
前端使用:HBuilderX 开发 uniapp(可以生成H5 、APP 和 微信小程序等多家小程序)
后端使用:C# + 盛派SDK
 
二、划重点
1、手机号授权 getPhoneNumber 返回的 {code} 与 wx.login 返回的  {code}  作用是不一样的,不能混用且只能消费一次。
2、wx.login 是静默,可以在用户无感知的情况下用 {code} 换取用户的 【OpenId】。
3、手机号验证组件 会弹出授权窗口(如下图),只有用户点击同意才授权成功,可以拿到手机号。并且实时组件会发送验证码。
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
三、uniapp前端
uniapp 手机号页面代码 ,使用快速还是实时,看自己需求。
手机号快速验证组件:
1 <template>
2     <view class="content">
3         <view class="text-area">
4             <button open-type="getPhoneNumber" @getphonenumber="GetPhoneNumber">手机号快捷登录</button>
5         </view>
6     </view>
7 </template>
手机号实时验证组件(会有验证码):
1 <template>
2     <view class="content">
3         <view class="text-area">
4             <button open-type="getRealtimePhoneNumber"@getrealtimephonenumber="getPhone">获取实时手机号码</button>
5         </view>
6     </view>
7 </template>
JS代码:
1 methods: {
2     //手机号授权
3     GetPhoneNumber: function(Res) {
4         let Container = this;
5         // 动态令牌
6         var Code = Res.detail.code;
7     },
8 }
如果获取到的code为空,可能是用户拒绝了授权,可以弹出【友好提示】请求再次授权。
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
用户授权成功后,拿到的正确响应如下图:
我们只需要用到code
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
用户拒绝授权,会得到这样的响应:
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
四、C#服务端
这里用到盛派的微信小程序SDK,需要引用相关NuGet包:Senparc.Weixin.WxOpen
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
 
C#代码:
使用盛派SDK:BusinessApi.GetUserPhoneNumber(" 可以放微信accessToken或者微信小程序AppId "," 前端手机号授权得到的code ")
盛派官方推荐使用 微信小程序AppId,系统会自动管理密钥的周期(如果过期会再次更新)
 1 try
 2 {
 3     #region code换用户手机号
 4     
 5      //code换用户手机号
 6      var UserMobilePhoneResult = BusinessApi.GetUserPhoneNumber("微信的动态令牌AccessToken", "前端拿到的code");
 7      //手机号
 8      String MobilePhone = MemberUserMobilePhoneResult.phone_info.purePhoneNumber;
 9      
10      #endregion code换用户手机号
11 }
12 catch (ErrorJsonResultException err)
13 {
14     return (XCXAccountUpdateMemberUserMobilePhoneResponse)SetExceptionError(MyResponse, err, -1, "手机号获取失败," + "错误原因:" + err.Message);
15 }
16 catch (Exception err)
17 {
18     return (XCXAccountUpdateMemberUserMobilePhoneResponse)SetExceptionError(MyResponse, err, -1, "手机号获取失败");
19 }
我项目有windows service (服务) 在服务器上24小时循环检查,统一生成微信小程序动态令牌AccessToken,所以我这里用的密钥。接口地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApIdoc/mp-access-token/getStableAccessToken.html
盛派SDK也可以,获取微信的小程序动态令牌AccessToken:
String AccessToken = AccessTokenContainer.GetAccessToken(WXXCXAppID);
如果遇到这样的错误,说明没有注册盛派相关服务。可以看官方解决文档:https://www.cnblogs.com/szw/p/9265828.html
23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑
 
注册代码:
在global.asax.cs 文件的 Application_Start() 方法中,加入代码(注意 using 两个命名空间:Senparc.CO2NET 和 Senparc.Weixin):
 1 #region 注册(激活)盛派SDK 微信使用
 2 try
 3 {
 4      //设置全局 Debug 状态
 5      var isGLobalDebug = true;
 6      var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug);
 7      //CO2NET全局注册,必须!
 8      var register = RegisterService.Start(senparcSetting).UseSenparcGlobal();
 9      //设置微信 Debug 状态
10      var isWeixinDebug = true;
11      var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug);
12      //微信全局注册,必须!
13      register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);
14     
15      //根据APPId判断获取
16      if (!AccessTokenContainer.CheckRegistered(WXXCXAppId))//检查是否已经注册
17      {
18          //注册小程序凭证 
19          await AccessTokenContainer.RegisterAsync(小程序的AppId, 小程序的密钥AppSecret, "【xxxxxxxx】小程序");
20      }
21  }
22 catch (Exception ex)
23 {
24     Senparc.CO2NET.Trace.SenparcTrace.SendCustomLog("系统日志", ex.Message);
25 }
26 #endregion 注册(激活)盛派SDK 微信使用

 文章来源地址https://www.toymoban.com/news/detail-711838.html

到了这里,关于23年9月最新微信小程序 手机号授权 (uniapp+盛派SDK) 帮你踩坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地

    微信官方文档 | 获取手机号 这是服务端的  这是我们前端获取手机号需要给接口传递的两个参数    注意: 参数一: 获取access_token需要用到小程序密钥,这个需要从 服务端获取 ,也就是需要请求后端接口获取access_token,千万不要将小程序密钥写在前端代码中, 必须 要从服

    2024年02月03日
    浏览(42)
  • Java - 微信小程序授权手机号登录

            最近做了一个关于商城的项目,B端选用若依的开源框架,C端还是vue前后端分离。其中C端主要是小程序的形式,所以想着来总结一下对接微信小程序登录中Java部分遇到的坑即代码分享! 废话不多说,直接上代码! 1、controller 层代码          入参我这边是直接使用

    2024年02月04日
    浏览(33)
  • 微信小程序手机号授权获取收费(手机号快速验证组件)剩余次数查看购买

    登录微信公众平台 ,在管理---》付费管理下查看,已用次数和剩余次数 该能力旨在帮助开发者向用户发起手机号申请,并且 必须经过用户同意后 ,开发者才可获得由平台验证后的手机号,进而为用户提供相应服务。 该能力与手机号实时验证组件的区别为: 手机号快速验证

    2024年02月22日
    浏览(45)
  • 【微信小程序】如何获取用户手机号授权登录

    目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体),也就是说只针对企业认证小程序开放。若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 在使用该接口时,用户可使用微信绑定手机号进行授权,也添加

    2024年02月16日
    浏览(48)
  • UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    描述:uniapp开发小程序,先授权用户信息后再出现手机号授权的页面进行手机号授权。完成后返回上一页面并把信息存入后台以及前台缓存中,方便使用。 1.在uniapp的manifest.json进行微信小程序配置 2.封装request请求api.js(如果已封装可跳过) 3.封装微信授权登录以及获取手机

    2024年02月11日
    浏览(29)
  • 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务。而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一。因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录。 首先,在小程序后台开发设置中勾选“获取手机号”选项

    2024年02月11日
    浏览(76)
  • uniapp微信小程序授权登录并获取手机号

    新版:前端要授权两次,一次获取用户信息授权码code,另外一次获取用户手机授权码code,全部传给后端。后端通过用户信息授权码获取openid,通过手机授权码获取手机号码。老版:前端传给后端授权码code和用户手机授权回调 里的iv和encryptedData给后端,后端通过code获取ope

    2024年02月11日
    浏览(68)
  • 微信小程序:授权登录获取手机号及获取基本信息等

    微信文档 1)需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,通过 getphonenumber 事件获取回调信息; 2)将 getphonenumber 事件回调中的动态令牌code传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机

    2024年02月06日
    浏览(36)
  • 微信小程序实战十七:手机号授权登录及报警推送

    说明:根据项目需求我们需要开发一个报表小程序,用的帆软报表生成页面,通过webview集成url地址,需要用户手机号授权登录及接受项目中的预警信息并通过订阅的方式长期持续多次的对用户进行推送。小程序已申请好企业版进去分类属于政府行业,满足这些条件可以免费调

    2024年01月19日
    浏览(37)
  • 微信小程序授权登录(含获取基本信息及绑定的手机号)

    1、授权获取微信个人信息 2、调用 wx.login() 获取临时登录凭证code 3、用code调用接口换取用户唯一标识openId、用户在微信开放平台账号下的唯一标识unionId和会话密钥session_key (1)前端获取 注意点 :正常开发中不会通过这种方法获取,会通过后台获取调用微信公众平台接口获

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包