支付宝小程序获取手机号码的的详细流程。(配置开发设置,具体流程)

支付宝小程序获取手机号码跟微信小程序的不一样,所以获取的流程也有很多的不同,所以第一步并不是直接写代码。

流程如下:

一、登录支付宝小程序开发管理平台 ->开发中心->小程序应用->选择你的小程序(点击查看)->设置->开发设置

 上图中的接口加签方式、IP白名单、应用网关、接口内容加密方式都需要设置。

二、接口加签方式,点击后需要授权短信验证码验证身份,然后如下图:

这里我模拟使用官方提供的支付宝密钥生成器生成密钥就行,步骤如下:

1.下载安装密钥生成器:传送门

 2.下载后直接傻瓜式安装就行,安装完毕后运行,进行如下设置:

这里我们使用的是默认的配置就行,直接点击生成密钥,等几秒钟密钥生成后,点击上传公钥。

我们的服务器会需要csr文件,直接点击获取csr文件获取,然后点击打开文件位置,将csr文件保存到服务器上面(后端验证签名和解密需要)。

这时我们就得到了密钥了,我们复制应用公钥回到上一步的接口加签方式页面。

三、将公钥粘贴到表单,然后点击保存设置

设置成功如下:

四、接下来我们需要配置IP白名单

点击设置->点击添加规则->选择配置全量接口

点击下一步->添加IP地址:

可添加多个IP地址,使用英文逗号隔开->确认添加->二次确认

配置ip白名单完成,接着进行下一步配置

五、配置应用网关

点击设置:

这里的网关可以使用域名,同样可以添加多个网关,使用英文逗号隔开,点击确定就OK了

六、设置接口内容加密方式

点击设置:

直接点击生成就行了。

全部设置后:

七、完成敏感信息申请

开发管理 -> 功能列表 -> 添加功能  -> 获取会员手机号 -> 用户信息申请

 

八、小程序获取手机号码

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

///axml
<!-- 授权弹窗 -->
<view class="alert-author" a:if="{{alertPhone}}">
  <view class="alert-mask"></view>
  <view class="alert-content">
    <view class="alert-main">
      <view class="alert-title">授权信息</view>
      <view class="alert-describe">小程序需要您的授权才能获得更好的服务哦。</view>
    </view>
    <view class="alert-buttons">
      <button open-type="getAuthorize"  scope='phoneNumber' class="alert-button" hover-class="button-active" onGetAuthorize="getUserPhone">确定</button>
    </view>
  </view>
</view>
<!-- 授权弹窗 -->

///js
getUserPhone(e){
    let that = this;
    my.getPhoneNumber({
      success: (res) => {
        let encryptedData = res.response;
        that.setData({
          ['userInfo.phone']: "18290261572",
          alertPhone: false
        })
         my.request({
             url: '你的后端服务端',
             data: encryptedData,
                success: function(result){

             }
         });
      },
      fail: (res) => {
          console.log("获取失败",res);
      },
    });
  },

九、java后端解密数据

String response = "小程序前端提交的";

//1. 获取验签和解密所需要的参数
Map<String, String> openapiResult = JSON.parseObject(response,
            new TypeReference<Map<String, String>>() {
            }, Feature.OrderedField);
String signType = "RSA2";
String charset = "UTF-8";
String encryptType = "AES";
String sign = openapiResult.get("sign");
String content = openapiResult.get("response");

//如果密文的
boolean isDataEncrypted = !content.startsWith("{");
boolean signCheckPass = false;

//2. 验签
String signContent = content;
String signVeriKey = "你的小程序对应的支付宝公钥(为扩展考虑建议用appId+signType做密钥存储隔离)";
String decryptKey = "你的小程序对应的加解密密钥(为扩展考虑建议用appId+encryptType做密钥存储隔离)"
;
//如果是加密的报文则需要在密文的前后添加双引号
if (isDataEncrypted) {
    signContent = "\"" + signContent + "\"";
}
try {
    signCheckPass = AlipaySignature.rsaCheck(signContent, sign, signVeriKey, charset, signType);
} catch (AlipayApiException e) {
    //验签异常, 日志
}
if(!signCheckPass) {
    //验签不通过(异常或者报文被篡改),终止流程(不需要做解密)
    throw new Exception("验签失败");
}

//3. 解密
String plainData = null;
if (isDataEncrypted) {
    try {
        AlipayEncrypt.decryptContent(content, encryptType, decryptKey, charset);
    } catch (AlipayApiException e) {
        //解密异常, 记录日志
       throw new Exception("解密异常");
    }
} else {
    plainData = content;
}

 

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
支付宝小程序开发流程包括以下几个步骤: 1. 注册开发者账号:首先,你需要在支付宝开放平台注册一个开发者账号。进入支付宝开放平台官网(https://open.alipay.com),点击注册,按照要求填写相关信息完成注册。 2. 创建小程序应用:登录开放平台后,在控制台中选择小程序管理,点击创建小程序应用。按照要求填写应用基本信息,包括应用名称、应用图标、应用简介等。 3. 开发环境准备:下载并安装支付宝小程序开发工具IDE(集成开发环境),该工具提供了代码编辑、调试和发布等功能。你可以在开放平台的小程序管理页面下载并安装最新版本的IDE。 4. 开发小程序:使用IDE创建新项目,选择小程序模板。接下来,你可以使用类似于前端开发的HTML、CSS和JavaScript等技术进行小程序开发。在开发过程中,你可以使用IDE提供的模拟器进行实时预览和调试。 5. 测试和调试:在开发过程中,你可以使用IDE提供的调试功能对小程序进行测试和调试。可以模拟不同设备、网络环境等进行测试,并进行代码的排查和修复。 6. 提交审核和发布:完成开发后,你需要登录开发者账号,在控制台中选择小程序管理,点击提交审核。按照要求填写并提交审核信息。支付宝会对小程序进行审核,审核通过后即可发布上线。 需要注意的是,支付宝小程序开发需要具备一定的前端开发技术和经验,熟悉HTML、CSS、JavaScript等相关技术,并了解支付宝小程序开发规范和限制。同时,还需要关注支付宝开放平台的最新公告和文档,以便及时了解和适应相关变化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业前端小白

写了这么久文章,1分钱都没收到

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值