1.进入 小程序详情页 > 开发设置 > 内容加密方式,首次设置可以看到 设置 按钮(若已设置则为 查看 按钮),经过核身校验后可以查看 AES 设置页面(该密钥由蚂蚁开放平台生成,开发者仅需要将密钥配置到你的系统中即可) 注意:若已配置密钥,请谨慎重新重新生成密钥,否则若你的服务端密钥没有更新最新密钥会导致解密失败 如下图:

2.在 小程序详情页 > 设置 > 开发设置页面,按照下图操作查看支付宝 RSA2 公钥(若看不到 查看支付宝公钥 入口,请按照“设置应用公钥”文档设置应用的 RSA2 公钥)  如下图:

3.在涉及敏感数据的情况下,jsApi返回的结果是密文,同时会对报文进行签名,需要传递到开发者服务端进行报文解密,整体的交互流程如下图所示:

4.完整报文示例:涉及到开发者服务端处理的安全操作包括:解密和验签。由于是否加密取决于数据的安全的敏感程度,所以存在明文的情况。res.response为完整的报文数据,示例如下(为了展示方便,报文示例均作了json的美化处理)  如下:

{
  "response": "hvDOnibG0DPcOFPNubK3DEfLQGL4=",
  "sign": "OIwk7zfZMp5GX78Ow==",
  "sign_type": "RSA2",
  "encrypt_type": "AES",
  "charset": "UTF-8"
}

5.验签与解密处理   无论是否涉及解密,Java后端处理逻辑都可以按照下述逻辑处理(以下代码仅作为代码示例,生产环境使用请注意异常处理逻辑;其它语言请参考常见问题中验签解密通用逻辑的说明)    代码如下:

public ResultsCode plainData(JSONObject jsonObject) throws Exception {JSONObject jsonStr = jsonObject.getJSONObject("jsonstr");String content = jsonStr.getString("encryptedData");//即前端传过来的response报文String sign = jsonStr.getString("sign");//对response报文的签名String signType = "RSA2";String charset = "UTF-8";String encryptType = "AES";//如果密文的boolean isDataEncrypted = !content.startsWith("{");boolean signCheckPass = false;//2. 验签String signContent = content;//你的小程序对应的支付宝公钥(为扩展考虑建议用appId+signType做密钥存储隔离)String signVeriKey = this.signVeriKey;//你的小程序对应的加解密密钥(为扩展考虑建议用appId+encryptType做密钥存储隔离)String decryptKey = this.decryptKey;//如果是加密的报文则需要在密文的前后添加双引号if (isDataEncrypted) {signContent = "\"" + signContent + "\"";}try {signCheckPass = AlipaySignature.rsaCheck(signContent, sign, signVeriKey, charset, signType);} catch (AlipayApiException e) {//验签异常, 日志}if (!signCheckPass) {//验签不通过(异常或者报文被篡改),终止流程(不需要做解密)return ResultsCode.failure(MsgCode.defaultNullPoint.getCode(), MsgCode.defaultNullPoint.getMsg());}//3. 解密String plainData = null;if (isDataEncrypted) {try {plainData = AlipayEncrypt.decryptContent(content, encryptType, decryptKey, charset);} catch (AlipayApiException e) {e.printStackTrace();//解密异常, 记录日志return ResultsCode.failure(MsgCode.defaultNullPoint.getCode(), MsgCode.defaultNullPoint.getMsg());}} else {plainData = content;}JSONObject object = JSONObject.parseObject(plainData);if (object != null && "10000".equals(object.getString("code"))) {return ResultsCode.success(object);}return ResultsCode.failure(MsgCode.governmentQueryField.getCode(), MsgCode.governmentQueryField.getMsg());
}

6.调用方法  解析数据如下:

支付宝小程序根据验签与解密处理解析获取手机号码相关推荐

  1. 支付宝小程序之蜻蜓设备刷脸核身获取手机号

    支付宝小程序之蜻蜓设备刷脸核身获取手机号 view <button class="btn-item btn-print" open-type="getAuthori ...

  2. [另类方式破解]支付宝的小程序sign验签参数算法

    前段时间想到支付宝的一个做任务领集分宝的小程序- 挺好的,想要做一个获取到所有任务,然后全自动做任务的工具,抓包发现有sign验签,于是有了本帖 抓完才发现,整个小程序是用https传输数据的. 另类 ...

  3. uniapp:微信小程序使用高德地图进行坐标反解析获取详细地址

    开发过小程序的都了解,我们在调用 uni.getLocation Api的时候,在微信小程序端,只会返给我们一个坐标系,当前位置的经纬度,当我们需要去知道当前位置的详细地址时,我们就需要进行反解析来获 ...

  4. 支付宝小程序唤起独立签约

    目录 获取签约字符串 唤起支付宝周期扣款签约页面 支付宝小程序唤起独立签约,需要通过alipay.user.agreement.page.sign接口获取签约字符串signStr,然后调用my.pay ...

  5. 【小程序demo】带你玩转支付宝小程序之获取会员信息

    火速围观!支付宝近期推出了一系列小程序示例,不仅提供在线体验而且提供全部源代码,示例涵盖了:会员信息.小程序二维码.刷脸认证.小程序支付.模板消息.支付宝卡包和线下买单7个高频使用场景.直接下载源代码 ...

  6. 抖音小程序支付宝异步回调中验签php代码

                  抖音小程序支付宝异步回调中验签php代码 异步回调中验签中我遇到坑:openssl_verify()总是返回0:问了支付宝技术客服才解决.已测试.可用 代码php示例: f ...

  7. php 支付宝小程序授权登陆验签_星巴克“啡快”登陆支付宝小程序,让你“飞快”取到咖啡...

    当代年轻人的生活方式是怎样的? 靠地铁通勤,靠咖啡续命 早上睁不开眼,咖啡来一杯 中午昏昏欲睡,咖啡来一杯 晚上熬夜加班,咖啡来一杯 喝完这杯,还有一杯 "宁可食无肉,不可早无星" ...

  8. 支付宝小程序获取手机号(证书方式解密)及生成小程序码代码示例

    注意:部分功能依赖于第三方支付工具类:ijpay import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference ...

  9. golang 获取支付宝小程序用户手机号、登录授权、AES解密

    目前支付宝官方的api没有关于golang语言的sdk,最近在开发支付宝小程序登录,发现支付宝对于敏感信息会进行AES加密 ,例如获取用户手机号,会先由前端获取手机号密文.传给服务端,进行解密,从而获 ...

最新文章

  1. 从用户角度看,DBMS应当提供哪些功能?
  2. 解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。...
  3. squirrelsql安装
  4. 结构型模式—享元模式
  5. OSSIM中配置网络资产监控
  6. android 打开免打扰模式_三星S10+免root也能完美使用Xp框架?这款神器你必须要知道...
  7. sqoop导数据出现问题
  8. python实现排列组合公式算法_朴素贝叶斯算法的Python实现
  9. Python基础(五)--函数
  10. hibernate中antlr对于hql生成抽象语法树源码解析
  11. 八、Java的可变参数例子
  12. C#中英文字符串固定长度换行
  13. 安装Office2007
  14. 2020电子设计竞赛G题 - 非接触物体尺寸形态测量
  15. 熵、联和熵与条件熵、交叉熵与相对熵是什么呢?来这里有详细解读!
  16. 日本瑞萨renesas MCU---汽车电子MCU的不二之选
  17. K8s安全管理:认证、授权、准入控制
  18. 南开大学张昊计算机,张昊-南开大学电子信息与光学工程学院
  19. 可免费下载的最新人民日报分词语料库(NEPD)发布(转载)
  20. STC32G库函数(五)——ADC检测反推电源电压

热门文章

  1. 2020年全国职业院校技能大赛改革试点赛样卷三
  2. Postman打开一直加载白屏
  3. 伊苏比的梦幻之旅(四)比赛题解
  4. H3C配置ssh登陆
  5. python入门需要多久-自学Python要学多久可以学会?
  6. Android smack+ejabberd+spack 实现即时通讯(一)服务器搭建
  7. 大模型也内卷,Vicuna训练及推理指南,效果碾压斯坦福羊驼
  8. 微信小程序日历基础版(可以自行修改想要的其它效果)
  9. java输入输出的方法
  10. 数据挖掘:模型评估指标