开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
支付宝小程序
案例分析
sdk & demo下载
常见问题
常用工具
iot小程序
运维保障
小程序 > 支付宝小程序 > 案例分析 > 三方模板模式获取手机号介绍
贡献者
收藏
我的文档
设置
三方获取手机号说明
在开发小程序模板时,集成获取用户手机号功能时,由于小程序模板不能配置 aes 密钥,所以只能通过接口的方式进行设置。商家小程序可以通过开放平台手动方式设置或接口方式进行设置,具体查看下方 设置商家/小程序模板aes密钥
本流程对商家/小程序模板都适用,服务商可在小程序模板测试完成后将相关代码放入小程序模板中,构建商家小程序模板后,集成在商家小程序中。
小程序模板和商家小程序一样,都可以授权给第三方应用,实现第三方应用代调用,详情可查看 将模板授权给第三方应用
开发前准备
创建&配置第三方应用
创建&开发小程序模板
商家创建&授权小程序
前提条件
三方应用必须已经绑定获取会员手机号。详情可查看 获取会员手机号
商家/小程序模板已经授权给第三方应用,详情可查看 第三方应用模式代调用接口准备
商家/小程序模板已经申请手机号字段权限并审核通过生效。详情可查看 用户信息申请及使用基础规则注意:
没有申请字段生效前测试,解密的内容会报:“isv权限不足,建议在开发者中心检查对应功能是否已经添加”。
申请字段审核有任何疑问可在 在线咨询或拨打商家客服电话咨询:4007585858,服务时间:8:00-24:00。
设置商家/小程序模板aes密钥
alipay.open.auth.app.aes.set(授权应用aes密钥设置)接口。创建 defaultalipayclient 时需要传入三方应用的 aes 密钥,详情查看下方示例代码。
此接口不需要传入 app_auth_token。
每次调用此接口都会重置商家/小程序模板 aes 密钥。
javascript
复制代码
alipayclient alipayclientsanfang = new defaultalipayclient("https://openapi.alipay.com/gateway.do", "三方应用appid", "三方应用应用私钥", "json", "gbk", "三方应用支付宝公钥", "rsa2", "三方应用aes密钥", "aes");alipayopenauthappaessetrequest request = new alipayopenauthappaessetrequest();
request.setbizcontent("{"
"\"merchant_app_id\":\"商家小程序appid\""
" }");alipayopenauthappaessetresponse response = null;try {
response = alipayclientsanfang.execute(request);
if (response.issuccess()) {
system.out.println("调用成功");
system.out.println(response.getaeskey());//设置商家/小程序模板应用aes成功并返回aeskey
} else {
system.out.println("调用失败");
}} catch (alipayapiexception e) {
e.printstacktrace();}
注意
服务商在构造 alipayclient 时,构造方法中需传入 encryptkey 和 encrypttype,encryptkey 为当前三方应用的 aes 密钥,encrypttype 为固定值 aes。
服务商在调用接口前,必须先设置第三方应用的 aes 密钥,否则无法调用接口。
获取商家/小程序模板aes密钥
alipay.open.auth.app.aes.get(授权应用aes密钥查询)接口。
创建 defaultalipayclient 时需要传入三方应用的 aes 密钥见下方示例代码。
此接口不需要传入 app_auth_token。
注意
服务商在构造 alipayclient 时,构造方法中需传入 encryptkey 和 encrypttype,encryptkey 为当前三方应用的 aes 密钥,encrypttype 为固定值 aes。
服务商在调用接口前,必须先设置第三方应用的 aes 密钥,否则无法调用接口。
前端获取用户信息授权后获取手机号加密字符串
前端必须使用 button 来先获取用户授权,在授权成功回调中使用 my.getphonenumber 获取到支付宝服务器返回的加密数据。
开发版测试,ide 必须关联相对应的商家/小程序模板应用。
scope 属性只能传一个值,即不能同时传 userinfo 与 phonenumber。
axml 示例代码
js 示例代码
服务端解密加密字符串
decryptkey 解密时使用商家/小程序模板的 aes 密钥进行解密(前面步骤设置/获取的aes)。
验签使用 string signverikey = sanfang_alipay_public_key;// 三方应用的支付宝公钥。
java解密
php
aopencrypt.php 文件中的 mcrypt_decrypt() 在 7.0 以下版本支持,在 php 7.0 以上不支持。
php 版本 7.0 以上 mcrypt_decrypt() 和 mcrypt_encrypt 废弃,aes 解密需要使用 openssl_decrypt 和 openssl_encrypt。
开发者可以基于自己的语言实现解密逻辑,也可以查看 服务端sdk 的相应语言的底层解密方法,例如:
php 版本 7.0 以下
php 版本 7.0 以上
nodejs
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图