最近有点忙,一直没有更新支付宝如何利用证书模式来进行授权的,今天正好有点时间,对支付宝证书模式授权做一下记录,前段时间,我在一篇博文中说明了支付宝普通公钥如何进行授权,在此,一些创建小程序,配置问题不再细作说明,感兴趣的朋友可以查看小程序授权之支付宝(普通公钥)

证书模式相较于普通公钥模式安全性更高,对此,官方做了明确说明,在需要调用资金变动类接口时必须使用证书模式,可以根据业务需求选择相应的模式
1.下载安装密钥生成器
在下图中选择生成密钥之后,需要获取CSR文件,而不是上传公钥


之后,将获取的CSR文件上传到证书模式的加签方式中

这样就获取到了授权需要的证书

2.关键代码,前端获取授权码可以查看小程序授权之支付宝(普通公钥)
这里之写了证书授权的关键部分

授权公共类

public AlipayClient AlipayAuthorization() {/* 初始化 **/CertAlipayRequest certAlipayRequest = new CertAlipayRequest();/* 支付宝网关 **/certAlipayRequest.setServerUrl(alipayConfig.getGateway());/* 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/certAlipayRequest.setAppId(alipayConfig.getAppId());/* 应用私钥, 如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602471154?ant_source=antsupport **/certAlipayRequest.setPrivateKey("应用私钥");/* 应用公钥证书路径,下载后保存位置的绝对路径 **/certAlipayRequest.setCertPath("应用公钥证书路径,下载后保存位置的绝对路径");/* 支付宝公钥证书路径,下载后保存位置的绝对路径 **/certAlipayRequest.setAlipayPublicCertPath("支付宝公钥证书路径,下载后保存位置的绝对路径");/* 支付宝根证书路径,下载后保存位置的绝对路径 **/certAlipayRequest.setRootCertPath("支付宝根证书路径,下载后保存位置的绝对路径");/* 设置签名类型 **/certAlipayRequest.setSignType("RSA2");/* 设置请求格式,固定值json **/certAlipayRequest.setFormat("json");/* 设置编码格式 **/certAlipayRequest.setCharset("UTF-8");AlipayClient alipayClient = null;try {alipayClient = new DefaultAlipayClient(certAlipayRequest);} catch (AlipayApiException e1) {e1.printStackTrace();}return alipayClient;}

证书授权获取userId

  public AlipaySessionDTO InsuranceAlipayLoginCertificate(String authCode){//调用支付宝授权公共类AlipayClient alipayClient = alipayAuthorization.AlipayAuthorization();/** 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称alipay.system.oauth.token(换取授权访问令牌) **/AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();/** 值为authorization_code时,代表用code换取;值为refresh_token时,代表用refresh_token换取*/request.setGrantType(alipayConfig.getGrantType());/* 授权码,用户对应用授权后得到,可参考文档:https://opendocs.alipay.com/open/284/web */request.setCode(authCode);/* 刷新令牌,上次换取访问令牌时得到。见出参的refresh_token字段 **///request.setRefreshToken("");/*第三方调用(服务商模式),传值app_auth_token后,会收款至授权token对应商家账号,如何获传值app_auth_token请参考文档:https://opensupport.alipay.com/support/helpcenter/79/201602494631 **///request.putOtherTextParam("app_auth_token", "传入获取到的app_auth_token值");AlipaySystemOauthTokenResponse response = null;try {response = alipayClient.certificateExecute(request);} catch (AlipayApiException e) {e.printStackTrace();}if (response.isSuccess()){AlipaySessionDTO sessionDto = new AlipaySessionDTO();sessionDto.setUserId(response.getUserId());return sessionDto;}return  null;}

业务层

public ResponseResult alipayLogin(String authCode){//获取授权返回的数据AlipaySessionDTO sessionDto = alipayLoginCertificate.InsuranceAlipayLoginCertificate(authCode);String userId = sessionDto.getUserId();if (StringUtils.isNotEmpty(userId) && StringUtils.isNotBlank(userId)){InsuranceMemberDO memberDO = insuranceMemberDao.getListByUserId(userId);if (memberDO == null){//说明新用户memberDO = new InsuranceMemberDO();memberDO.setUserId(userId);memberDO.setStatus(1);memberDO.setAuth(1);memberDO.setAddTime(new Date());insuranceMemberDao.save(memberDO);}return new ResponseData<>(CommonCode.SUCCESS, memberDO);}return new ResponseData<>(CommonCode.FAIL, "登录失败");}

这里只是获取到userId,如需获取其他用户信息查看小程序授权之支付宝(普通公钥)

如有疑问,欢迎留言

小程序授权之支付宝(证书模式)相关推荐

  1. 微信,支付宝支付,微信公众号小程序授权等

    微信,支付宝支付,微信公众号小程序授权等 前言 微信支付 微信授权 maven依赖(更新) 前言 最近在公司也做了很多移动端项目,如今微信公众号,小程序又特别火爆,免不了要接触支付,授权这类的业务需求 ...

  2. 智慧商圈支付宝小程序(ISV系统服务商开发模式)

    一.产品成果 二.前言 本次支付宝小程序和以前支付宝小程序不同是,以前小程序主体就是个普通的小程序,这次我们是站在第三方ISV(服务商)角度来进行开发. ISV 帮助商户开发小程序时可使用的两种开发模 ...

  3. 支付宝小程序授权登录 (Java 后台篇)

    支付宝小程序授权登录 (Java 后台篇) 开始 : 实现支付宝小程序授权登录功能, 本文主要是介绍支付宝小程序授权登录流程,与关键登录与处理代码. 流程 : 关键代码 : 1.获取用户信息 /*** ...

  4. 支付宝小程序授权/获取用户信息

    支付宝小程序授权/获取用户信息 目录: 文章目录 支付宝小程序授权/获取用户信息 获取支付宝小程序授权token 解析支付宝小程序接口响应加密数据 获取支付宝小程序授权token ​ 前提准备工作: ...

  5. uniapp支付宝小程序授权用户信息、授权手机号码

    需求说明 uniapp开发支付宝小程序授权用户信息和用户手机号码过程中,与微信小程序的API是有所不同的,相同是都是需要<button></button>点击事件触发.接下来简 ...

  6. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  7. SpringBoot微信小程序授权登录

    SpringBoot微信小程序授权登录 一.appId 1.1.自己是管理者:微信公众平台,申请或登录自己的微信小程序,在开发者管理中即可看到 2.2.自己是开发者:让管理员将自己加入到小程序开发者管 ...

  8. 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录

    战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...

  9. 【小程序迁移】微信小程序迁移到支付宝记坑

    [小程序迁移]微信小程序迁移到支付宝记坑 文档控制台网址汇总 前言 本地区别 仅企业可用的功能 限制功能 插件区别 云开发API区别 需要做的代码变更 xml部分 CSS部分 JS部分 自定义组件 比 ...

最新文章

  1. FortiGate 硬件加速
  2. 小心!智能合约再爆高危漏洞,两大加密货币直接变废纸!
  3. Combinations leetcode java
  4. ZooKeeper在HBase集群中的作用
  5. django笔记精炼 200304
  6. GUI Design Studio 4 5 151 0原型设计工具的使用
  7. 安装composer 提示需要反复重启解决办法
  8. nagios插件脚本check_linux_stats.pl 安装
  9. suse mysql 库文件_suse 10 下mysql安装
  10. 关于微信拼车小程序开发的需求分析(需求获取)
  11. IAR EWARM 破解方法
  12. IDEA打包jar包的多种方式
  13. 关于GX WORKS2中M8002、M8012、M8013无法使用的问题
  14. matlab导弹追踪,导弹追踪代码
  15. 数据可视化之农作物产量,主要农产品总产量是多少?
  16. EBS-自动获取/创建CCID
  17. STM32开发笔记03---Bit-Banding
  18. Office 2016 Excel实现下拉栏
  19. 乐高机器人亮剑_2500名选手大比拼 全球机器人从化“亮剑”
  20. 华为鸿蒙电视v65如何,华为智慧屏V65体验:不谈鸿蒙OS,作为大屏它也足够惊艳...

热门文章

  1. Android ListView初步
  2. 关于CentOS7联网,祝你一臂之力
  3. 独立版狮子鱼16.0.2社区团购直播小程序商城+团长功能+接龙分销+拼团秒杀
  4. 配置jupyter在远端服务器运行
  5. CodeBlocks 安装教程(百度网盘)
  6. 『 DSSM』A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems
  7. 常用的排序算法的时间复杂度以及稳定性
  8. 魔兽中各族单位名称英文缩写
  9. python小游戏 贪吃蛇小游戏设计与实现
  10. 职称计算机ppt2003注意,职称计算机考试考注意事项.ppt