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

证书模式相较于普通公钥模式安全性更高,对此,官方做了明确说明,在需要调用资金变动类接口时必须使用证书模式,可以根据业务需求选择相应的模式
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. 火爆GitHub的《机器学习100天》,有人把它翻译成了中文版
  2. apu和atom处理器两者的定位
  3. WeChat判断是否为微信浏览器访问方法:HTTP_USER_AGENT:MicroMessenger
  4. word List 34
  5. java输入正确的信息_判断用户输入的信息是否正确
  6. [强]用VC++6.0编译调试汇编程序
  7. 移动游戏开发图书推荐
  8. [转帖]九句英语闯天下
  9. 【C语言】18-变量类型
  10. 挑战程序设计竞赛是c语言编写的嘛,POJ 2115 C Looooops 题解《挑战程序设计竞赛》...
  11. java web程序设计答案郭克华_清华大学出版社郭克华JavaWeb程序设计上机习题答案及解析.doc...
  12. 成功在神舟K650c-i7 d2(i7-4700MQ、HM87)上装好了Windows XP
  13. Cousera Notebook 之 Python 备份记录
  14. AGPS定位基本原理浅析
  15. Tablespace free space
  16. WPTools改进了光标定位算法和RTF编写器
  17. java四则运算思路_java四则运算
  18. Linux网络管理员手册
  19. 我用Python爬取了妹子网200G的套图
  20. 有抱负的 Web 开发人员应该在 2021 年学习的 10 件事

热门文章

  1. 联想天逸510pro开机后滴滴两短声不能正常开机
  2. SecureCRT通过按钮实现快捷执行命令
  3. 免费的装机必备专业常用工具汇编指导20180506
  4. linux c语言定时关机,linux 定时关机命令
  5. 【微信小程序】拍照软件demo
  6. 直播网络质量检测流程
  7. Pytest断言assert
  8. 宝石镶嵌html5游戏,上古天帝篇宝石镶嵌系统开启 教你如何镶嵌宝石
  9. Introduction to RTMFP
  10. 数据分析系列之数据探索