教程-使用支付宝公钥验签

简介: 阅读角色:技术同学 技术同学把1).APPID,2).应用私钥,3).支付宝公钥,配置在代码中,对请求内容进行签名,并对支付宝返回的内容进行验签。 支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用。

阅读角色:技术同学 
技术同学把1).APPID,2).应用私钥,3).支付宝公钥,配置在代码中,对请求内容进行签名,并对支付宝返回的内容进行验签。 
支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用。 
SDK下载地址 :[url]https://docs.open.alipay.com/54/103419[/url]
TIPS:文中代码部分以JAVA语言演示,其他语言请参考各自SDK。

使用开放平台SDK接入 
同步返回和异步通知报文格式及验签方法有所区别。 
同步返回验签 
开放平台SDK封装了同步返回验签实现,只需在创建DefaultAlipayClient对象时,设置请求网关(gateway),应用id(app_id),应用私钥(private_key),编码格式(charset),支付宝公钥(alipay_public_key),签名类型(sign_type)即可,同步返回报文时会自动进行验签。 

AlipayClient alipayClient = new DefaultAlipayClient(gateway,app_id,private_key,"json",charset,alipay_public_key,sign_type); 
异步通知验签 

某些情况下(比如扫码支付成功时),支付宝会给商户发送异步通知。 
如果某商户设置的通知地址为[url]https://api.xx.com/receive_notify.htm[/url],对应接收到通知的示例如下: 
[url]https://api.xx.com/receive_notify.htm?total_amount=2.00&buyer_id=2088102116773037&body=[/url]大乐透2.1&trade_no=2016071921001003030200089909&refund_fee=0.00¬ify_time=2016-07-19 14:10:49&subject=大乐透2.1&sign_type=RSA&charset=utf-8¬ify_type=trade_status_sync&out_trade_no=0719141034-6418&gmt_close=2016-07-19 14:10:46&gmt_payment=2016-07-19 14:10:47&trade_status=TRADE_SUCCESS&version=1.0&sign=kPbQIjX+xQc8F0/A6/AocELIjhhZnGbcBN6G4MM/HmfWL4ZiHM6fWl5NQhzXJusaklZ1LFuMo+lHQUELAYeugH8LYFvxnNajOvZhuxNFbN2LhF0l/KL8ANtj8oyPM4NN7Qft2kWJTDJUpQOzCzNnV9hDxh5AaT9FPqRS6ZKxnzM=&gmt_create=2016-07-19 14:10:44&app_id=2015102700040153&seller_id=2088102119685838¬ify_id=4a91b7a78a503640467525113fb7d8bg8e 
开放平台SDK提供了AlipaySignature.rsaCheckV1方法,可以使用该方法对通知报文验签。 

/** 
@param params 参数列表(包括待验签参数和签名值sign) key-参数名称 value-参数值 
@param publicKey 验签公钥 
@param charset 验签字符集 
**/ 
boolean AlipaySignature.rsaCheckV1(Map params, String publicKey, String charset) 
TIPS:生活号异步通知需要使用AlipaySignature.rsaCheckV2方法,会保留sign_type参数参与验签。 

未使用开放平台SDK 
如果未使用开放平台SDK,需要自行实现验签过程,参考此处流程:[url]https://docs.open.alipay.com/200/106120[/url]

目录
相关文章
|
存储 安全 API
技术经验解读:公钥和私钥的区别
技术经验解读:公钥和私钥的区别
1063 0
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
992 4
|
开发框架 人工智能 安全
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
HarmonyOS NEXT的发布对华为及整个行业都产生了深远的影响。它不仅展示了华为的技术实力,还敏锐地把握了市场需求。同时,吸引了更多的开发者和合作伙伴加入鸿蒙生态体系,共同推动鸿蒙生态的繁荣发展。
1170 20
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
|
存储 NoSQL 安全
阿里淘系单点登录中心实战
阿里淘系单点登录中心实战
708 0
|
编解码 Dubbo NoSQL
由浅入深理解RPC架构设计
🌴🌴经常听到大家说不同项目之间调用使用HTTP方式,同一个项目内不同服务之间调用使用RPC方式。今天就来学习一下`RPC框架`,RPC框架由哪些部分组成又是如何一步一步设计出来的。
1171 0
由浅入深理解RPC架构设计
|
数据可视化 物联网 关系型数据库
幻方开源第二代MoE模型 DeepSeek-V2,魔搭社区推理、微调最佳实践教程
5月6日,幻方继1月份推出首个国产MoE模型,历时4个月,带来第二代MoE模型DeepSeek-V2,并开源了技术报告和模型权重,魔搭社区可下载体验。
|
监控 应用服务中间件 数据库
Django 应用部署也太让人头疼了吧!但掌握这些,你就能轻松搞定,快来一探究竟!
【8月更文挑战第31天】作为一名开发者,将Django应用从开发环境顺利部署到生产环境至关重要。这涉及技术操作与实际考量,需确保应用稳定高效运行。从开发到部署至如DigitalOcean等云服务器,每一步——包括安装必要软件、配置数据库、使用Git上传代码、设置Nginx和Gunicorn、实施安全措施以及监控和日志记录——都需遵循最佳实践,以提供可靠的用户服务。
434 0
|
前端开发 JavaScript 测试技术
自动化测试定位方式那么多,应该选哪个?
本文介绍了移动应用自动化测试中的定位策略,包括 ID、XPath、ClassName、AccessibilityID、Name、XPath 模糊定位、Android UI Automator、iOS Predicate 等。在Web测试中,使用class name、css selector、id等定位元素。选择定位器应遵循与研发约定、优先使用特定属性及组合定位的原则。当元素定位不到时,可能因定位信息错误、元素状态等问题,可通过调整策略、等待元素加载或使用JS操作解决。特殊控件如弹框、下拉框等,需采用特定方法如JS注入或send_keys()处理。
|
人工智能 运维 自然语言处理
对话蚂蚁李建国:当前AI写代码相当于L2.5,实现L3后替代50%人类编程
超70%代码问题,单纯靠基座大模型是解决不了的;未来3-5年,人类50%编程工作可以被替代,有些环节甚至完全自动化。蚂蚁集团代码大模型CodeFuse负责人李建国说道。当下,AI代码生成领域正在野蛮式生长,巨头涌入,AI员工频频上线企业;首个AI程序员Devin被曝造假…… 面对风起云涌的代码生成变革,李建国给出了这样一个明确论断。
498 1
|
资源调度 数据可视化
用二元泊松模型预测2022年世界杯淘汰赛结果
双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的。而我们都知道,在对抗性比赛中,两队的比分是存在关联的,双泊松模型可以描述比分的这种关联性,提高了比赛结果预测的准确度。
1525 1
用二元泊松模型预测2022年世界杯淘汰赛结果