您现在的位置:   首页 >> 新闻中心 >> 行业动态

支付宝小程序如何获取用户的手机号

发布人:admin 发布时间:2021-07-06 244 次浏览

支付宝小程序如何获取用户的手机号


产品介绍

简介

获取会员手机号旨在帮助商家便捷获取用户联系方式,在获得用户充分授权和认可且充分保护用户隐私的前提下,快速创建会员体系或开展其他业务。有关获取会员手机号能力的详细介绍,请参见 获取会员手机号

准入条件

  • 开发者需充分尊重用户个人隐私,妥善使用手机号码的使用范围,不得随意打扰用户。若发现信息存在超出约定范围使用或者不合理使用等情况,平台有权永久收回接口权限。

  • 为进一步规约和确认安全资质,开发者需加入 蚂蚁数据安全与隐私保障联盟,并严格遵守《支付宝开放平台用户信息处理规范》《开放平台第三方应用安全开发指南》

收费模式

免费。

接入流程

image

接入准备

第一步:创建应用及模板

系统服务商(ISV)需 创建第三方应用 并 创建小程序模板 后才可接入获取会员手机号能力。

第二步:添加能力

登录 开放平台控制台 >选择相应的第三方应用并点击进入管理后台 > 在 能力列表 中点击 添加能力 > 选择添加 获取会员手机号 和 应用AES密钥管理 能力。

image

第三步:配置应用

接入获取会员手机号能力前,ISV 需为模板所属第三方应用配置 应用网关接口内容加密方式 。

1. 配置应用网关

  1. 登录 开放平台控制台 >选择相应的第三方应用并点击进入管理后台 > 开发管理,在 开发信息 > 应用网关 中,点击 设置
    image

  2. 输入 ISV 服务器的网关,选择加签方式,点击 确定。应用网关应符合以下要求:

  • 支持所设置的加签方式;

  • 外网可访问;

  • 可接收 post 数据 。

image

2. 配置接口内容加密方式

  1. 登录 开放平台控制台 >选择相应的第三方应用并点击进入管理后台 > 设置 > 开发信息 > 在 接口内容加密方式 中,点击 设置image

  2. 确认提示内容,点击 生成新密钥,即完成配置。

image

模板开发

第一步:接口调用

1. 小程序端获取信息

ISV 在小程序端调用 my.getPhoneNumber 接口,在用户授权后获取加密的手机号信息。再将接口返回的结果通过 my.request 接口传入第三方应用的网关地址。

注意:

  • ISV 代商家获取用户手机号信息时需传入 isvAppID(第三方应用 AppID)。

  • 使用 protocols 要求 基础库 版本为 1.22.0 及以上;支付宝客户端版本为 10.1.72 及以上。请使用 my.canIUse('getPhoneNumber.object.protocols') 进行 兼容处理

示例代码:

my.canIUse('getPhoneNumber.object.protocols')//兼容性处理my.getPhoneNumber({    protocols:{       // 小程序模板所属的第三方应用APPID            isvAppId: '第三方应用APPID'    },    success: (res) => {        let encryptedData = res.response; // 手机号及签名加密信息        my.request({            url: 'ISV服务端地址',            data: encryptedData,        });    },    fail: (res) => {        console.log(res);        console.log('getPhoneNumber_fail');   },});

2. 服务端解密

ISV 需在服务端解密小程序端返回的手机号信息,JAVA 解密示例如下(更多语言验签及解密示例详情参见 内容加密指引)。

注意:

  • 服务端解密时,需使用商家小程序 AES 密钥。

  • 调试小程序模板时,使用模板 AES 密钥。 

示例代码:


public void decryptPhoneNum(){        String response ="";// 前端接口返回的加密信息  //1. 获取解密所需要的参数        Map<String, String> openapiResult = JSON.parseObject(response,      new TypeReference<Map<String, String>>() {        }, Feature.OrderedField);        String charset = "UTF-8";        String encryptType = "AES";        String content = openapiResult.get("response");        // 判断是否为加密内容        boolean isDataEncrypted = !content.startsWith("{");        String decryptKey = "B_AES_KEY"; // 商家小程序 AES 密钥        //AES密钥,这里参数不能写成固定的,开发阶段需传入模板的AES密钥,实例化后应传入商家小程序的AES密钥        // 解密        String plainData = null;        if (isDataEncrypted) {            try {                System.out.println("AlipayEncrypt");                plainData = AlipayEncrypt.decryptContent(content, encryptType, decryptKey,charset);                System.out.println("AlipayEncrypt Trance done");            } catch (AlipayApiException e) {                //解密异常, 记录日志                                try {                    throw new Exception("解密异常");                } catch (Exception e1) {                    // TODO Auto-generated catch block                    e1.printStackTrace();                }            }        } else {            plainData = content;        }        System.out.println(plainData);}

第二步:模板调试

ISV 完成模板开发后,在提审模板前需在本地进行功能调试,完成调试后即可提审发布为服务,供商家订购使用。

1. 模板授权

ISV 将小程序模板授权给第三方应用,详情参见 将模板授权给所属第三方应用

image

2. 配置 AES 密钥

ISV 需调用 alipay.open.auth.app.aes.set授权应用aes密钥设置) 接口,以第三方应用自调用(即不传 app_auth_token)方式为小程序模板设置 接口内容加密方式(即 AES 密钥)。

示例代码:

//encryptKey填入当前第三方应用的AES密钥,encryptType为"AES" AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","第三方应用APPID","第三方应用私钥","json","GBK","第三方应用的支付宝公钥","RSA2","encryptKey","encryptType");AlipayOpenAuthAppAesSetRequest request = new AlipayOpenAuthAppAesSetRequest();request.setBizContent ("{"   +          //为模板设置就填写小程序模板APPID,为商家设置就填写商家小程序APPID        "\"merchant_app_id\":\"20191223601234500\""   +    "}");AlipayOpenAuthAppAesSetResponse response = alipayClient.execute(request);if (response.isSuccess ()){      System.out.println ( response.getAesKey());      System.out.println ("调用成功");}  else  {      System.out.println ("调用失败");}

注意:

  • 配置 AES 密钥场景构造 alipayClient 时,构造方法中需传入 encryptKey 和 encryptType,encryptKey 为当前第三方应用的 AES 密钥,encryptType 为固定值  AES。

  • merchant_app_id:应用的 APPID,代模板设置时传入小程序模板 APPID,代商家小程序设置时传入商家小程序 APPID。 

ISV 还可调用 alipay.open.auth.app.aes.get授权应用aes密钥查询)接口(不传 app_auth_token),查询已授权给第三方应用的小程序模板或小程序应用的 AES 密钥。


//encryptKey填入当前第三方应用的AES密钥,encryptType为"AES" AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","第三方应用APPID","第三方应用私钥","json","GBK","第三方应用的支付宝公钥","RSA2","encryptKey","encryptType");AlipayOpenAuthAppAesGetRequest request = new AlipayOpenAuthAppAesGetRequest();request.setBizContent ("{"   +    "\"merchant_app_id\":\"20191223601234500\""   + //填写需查询密钥的应用APPID  "}" );AlipayOpenAuthAppAesGetResponse response = alipayClient.execute(request);if (response.isSuccess ()){  System.out.println(response.getAesKey());  System.out.println( "调用成功" );}  else  {  System.out.println( "调用失败" );}

3. 代模板申请用户信息

代模板申请用户信息后,模板才有权限获取会员手机号。

注意:会员手机号信息仅支持部分行业类目及使用场景申请,其余行业及场景申请将被驳回。支持行业详情参见 用户信息申请主营行业&使用场景汇总表

  1. 登录 开放平台控制台 >选择相应的第三方应用并点击进入管理后台 > 功能管理 > 获取会员手机号,点击 代申请用户信息

image

  1. 选择需要申请用户信息的小程序模板,点击 下一步

image

  1. 选择类目和用户信息,点击 下一步

image

  1. 阅读了解相关规范,并如实详细填写申请信息。确认无误后,点击 提交申请

image

  1. 审核时长约为 2~3 个工作日,审核通过后可获得该信息字段的权限。可登录 支付宝开放平台,进入 控制台 > 第三方应用详情 > 功能管理 > 获取会员手机号,点击代申请用户信息 ,点击 已提交的申请,进入页面后,查看 状态 列,即可获取当前审核状态。image

4. 测试功能

完成上述步骤后,服务商可将小程序模板模拟作普通小程序, 真机调试 获取用户手机号信息并在服务端解密。

功能验证通过后即可提审上架。

代商家接入

ISV 需代商家申请用户信息、设置商家小程序 AES 密钥后,再 构建商家小程序版本,否则商家小程序将无法正常运行获取会员手机号能力。

设置商家小程序 AES 密钥的操作,请参见 模板代码实现

第一步:商家订购

商家订购小程序模板后,服务商可根据如下流程代商家接入本功能。

注意:ISV 需代商家申请用户信息、设置商家小程序 AES 密钥后,再 构建商家小程序版本,否则商家小程序将无法正常运行获取会员手机号能力。设置商家小程序 AES 密钥的操作,详见 模板代码实现

第二步:构建商家小程序版本

开发者需为商家小程序设置 内容加密方式(即 AES 密钥)再 构建商家小程序版本否则商家小程序将无法正常运行获取会员手机号能力。

  1. AES 密钥配置详情参见上文 模板开发 > 第二步:模板调试 > 配置 AES 密钥

  2. 构建商家小程序版本详情参见 构建商家小程序版本

第三步:配置小程序类目

ISV 代商家小程序申请用户信息前,需调用 alipay.open.mini.category.query(小程序类目树查询)接口查询商家小程序可用类目,再调用 alipay.open.mini.baseinfo.modify(小程序修改基础信息)接口,代商家小程序设置 mini_category_ids(前台类目即小程序主营行业类目)。详情参见上文 模板开发 > 第二步:模板调试 > 配置模板前台类目

说明:会员手机号信息申请仅开放给部分行业类目及场景,其余行业及场景申请将被驳回,详情参见 用户信息申请主营行业&使用场景汇总表

商家小程序后台效果:

image

第四步:代商家小程序申请用户信息

  1. 登录 开放平台控制台 > 选择相应的第三方应用并点击进入管理后台 > 功能管理 > 获取会员手机号,点击 代申请用户信息

image

  1. 选择需要申请用户信息的商家小程序,后续步骤与上文  模板开发 > 第二步:模板调试 > 代模板申请用户信息 一致。

image

第五步:进行测试

实例化商家小程序 后,在体验版中测试商家小程序是否能成功获取会员手机号,如不能,可参见下方 FAQ。若体验版正常无误,可进行 提审商家小程序

FAQ

Q1:一个第三方应用最多只能代多少个授权的商家应用获取手机号?

A:ISV 在界面申请时单次最多可代 50 个已授权的应用申请用户信息,其余无数量限制。

Q2:提示 isv.missing-encrypt-key 缺少加密配置的报错?

A:需要调用 alipay.open.auth.app.aes.set 接口给模板小程序设置 AES 密钥。

Q3:代商户获取手机号,获取手机号时,没有传回 sign,是什么原因?

A:检查小程序后台是否配置接口加签方式、AES 密钥、应用网关。

Q4:模板代申请用户手机号屡次被拒,驳回原因应用名称被释放,如何解决?

A:建议提交审核时做修改。或登录 商家中心,点击首页右侧浮窗在线咨询。

Q5:代商户申请手机号,有的商户不可以申请,什么原因?

A:并不是所有小程序都可以获取用户手机号的,和小程序行业、商家风险等相关。



我司为 支付宝支付服务商 支付宝开发服务商微信支付服务商微信开发服务商如您有小程序开发需求,小程序开发系统加盟请联系我们
最新资讯
在线咨询
电话咨询
扫一扫

微信扫一扫
咨询最新优惠活动

联系微信
www46kaicn

返回顶部
易客多小程序saas系统__微信小程序开发_餐饮外卖小程序开发_商城小程序开发代理加盟_小程序开发系统源码部署
3分钟快速拥有自己的小程序! 四六开科技,以创新技术引领行业未来
免费试用