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

简介: 阅读角色:技术同学 技术同学把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
技术经验解读:公钥和私钥的区别
技术经验解读:公钥和私钥的区别
1000 0
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
932 4
|
开发框架 人工智能 安全
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
HarmonyOS NEXT的发布对华为及整个行业都产生了深远的影响。它不仅展示了华为的技术实力,还敏锐地把握了市场需求。同时,吸引了更多的开发者和合作伙伴加入鸿蒙生态体系,共同推动鸿蒙生态的繁荣发展。
1084 20
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
|
存储 NoSQL 安全
阿里淘系单点登录中心实战
阿里淘系单点登录中心实战
668 0
|
编解码 Dubbo NoSQL
由浅入深理解RPC架构设计
🌴🌴经常听到大家说不同项目之间调用使用HTTP方式,同一个项目内不同服务之间调用使用RPC方式。今天就来学习一下`RPC框架`,RPC框架由哪些部分组成又是如何一步一步设计出来的。
1126 0
由浅入深理解RPC架构设计
|
机器学习/深度学习 数据采集 算法
【2023 华数杯全国大学生数学建模竞赛】 C题 母亲身心健康对婴儿成长的影响 Python代码实现
本文介绍了2023年华数杯全国大学生数学建模竞赛C题的Python代码实现,探讨母亲身心健康对婴儿成长的影响,包括建立数学模型研究母亲身体和心理指标与婴儿行为特征和睡眠质量的关系,以及通过优化模型分析治疗费用与母亲心理健康状况的关系。
599 0
【2023 华数杯全国大学生数学建模竞赛】 C题 母亲身心健康对婴儿成长的影响 Python代码实现
|
前端开发 API
LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
1162 0
|
监控 应用服务中间件 数据库
Django 应用部署也太让人头疼了吧!但掌握这些,你就能轻松搞定,快来一探究竟!
【8月更文挑战第31天】作为一名开发者,将Django应用从开发环境顺利部署到生产环境至关重要。这涉及技术操作与实际考量,需确保应用稳定高效运行。从开发到部署至如DigitalOcean等云服务器,每一步——包括安装必要软件、配置数据库、使用Git上传代码、设置Nginx和Gunicorn、实施安全措施以及监控和日志记录——都需遵循最佳实践,以提供可靠的用户服务。
407 0
|
资源调度 数据可视化
用二元泊松模型预测2022年世界杯淘汰赛结果
双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的。而我们都知道,在对抗性比赛中,两队的比分是存在关联的,双泊松模型可以描述比分的这种关联性,提高了比赛结果预测的准确度。
1372 1
用二元泊松模型预测2022年世界杯淘汰赛结果
Java实战:使用Hutool中的MailUtil实现邮件的发送
今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。具体的大家可以互相沟通交流!
Java实战:使用Hutool中的MailUtil实现邮件的发送

热门文章

最新文章