最新要闻
- 全球头条:连Intel都难逃寒冬:美国加州部门裁员数百人
- 自行车数量比人口还多 荷兰水下自行车库启用:比汽车车库还豪华
- 世界简讯:孩子抱走小狗还给大狗磕了3个头 剧情反转没血缘关系:网友调侃白磕
- iPhone 15全系USB-C!iOS 17曝光:几乎没变化 苹果开始“摆烂”
- 每日信息:比燃油车更污染 吐槽新能源车愚蠢!丰田换帅 扩大纯电动汽车销售
- 直击近地行星2023BU与地球擦肩而过:卡车大小、时速高达5.4万公里
- 43英寸Mini-LED 144Hz高刷屏:三星宣布奥德赛Neo G7显示器进军全球市场
- 环球即时:AMD官方发布RX 7000/6000系显卡实测:老显卡更具性价比
- 长沙游客吐槽网红店排队4538桌 全家吃泡面引热议:春节被挤爆 网友感慨都是人
- 11.6英寸大屏+中置单摄模组:一加首款平板现身海外
- 焦点要闻:假期剩5天作业剩7本 女孩崩溃大哭表示不想活了:网友笑趴太真实
- 我们没偷票房、幽灵场等!《满江红》被质疑抄袭《龙门镖局》宁财神回应
- 世界播报:满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣
- 天天简讯:辽宁上空惊现“三个太阳”幻日奇观 手机拍下罕见一幕:专家揭秘成因
- 当前滚动:小朋友哈尔滨室外舔冰雕舌头被粘:东北的冰真的是甜的吗?
- 环球热议:信号大升级!iPhone 15系列有望支持Wi-Fi 6E传输标准
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球动态:支付宝接口的数字签名
签名
某些情况下(例如用户扫码支付成功时),支付宝会给商户系统发送异步通知。在发送异步通知时,支付宝会对通知参数进行签名,并将 “签名字符串 sign” 作为通知参数发送给商户系统。支付宝签名的步骤是:
(资料图片)
- 拼接 “待签名字符串”;
- 调用签名方法 sign();
- 拼接完整的请求 URL。
技术是为了解决问题而生的,进行数字签名的目的是:
- 确保信息是由签名者发送的。防止有人冒充支付宝向商户系统发送异步通知;
- 确保信息自签名后 到 收到为止,信息未被修改过。防止有人篡改请求参数的值。
如果商家设置的通知地址为 https://api.xx.com/receive_notify.htm
,对应收到的通知示例如下:
https://api.xx.com/receive_notify.htm?total_amount=2.00&buyer_id=2088102116773037&body=大乐透2.1&trade_no=2016071921001003030200089909&refund_fee=0.00¬ify_time=2016-07-19 14:10:49&subject=大乐透2.1&sign_type=RSA2&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
1 、拼接 “待签名字符串”
支付宝对要发送的通知参数进行签名的第一步是:拼接 “待签名字符串”。
- 对需要签名的参数进行字典排序:字典排序是按照参数的第一个字符的 ASCII 码递增排序(字母升序排序)。如果参数的第一个字符相同,则按照参数的第二个字符的 ASCII 码递增排序,以此类推。
- 对排序后的参数进行拼接,得到 “待签名字符串”:将排序后的参数与其对应值,组合成
参数=参数值
的格式,参数与参数之间用 & 字符连接起来,此时生成的字符串为 “待签名字符串”。
2、调用签名方法 sign()
支付宝对要发送的通知参数进行签名的第二步是:调用签名算法对应的签名方法 sign(),生成签名字符串 sign。
调用签名算法对应的签名方法时,需要提供以下几个参数:待签名字符串 content、字符编码方案 charset(UTF-8、GBK)和 签名者的私钥 privateKey。签名方法 sign() 的处理逻辑如下:
- 对 “待签名字符串” 进行编码,得到字节数组:使用指定的字符编码方案,将 “待签名字符串” 编码为字节数组(byte 类型的数组)
- 进行签名、Base64 编码,得到签名字符串 sign:使用签名者的私钥 privateKey 对 “待签名字符串” 对应的字节数组进行签名,并对签名结果进行 Base64 编码,以便在网络上传输。经过 Base64 编码后的字符串即为 “签名字符串 sign”。
String sign = new String(Base64.encodeBase64(signed));
3、拼接完整的请求 URL
支付宝对要发送的通知参数进行签名的第三步是:拼接完整的请求 URL。
- 拼接 sign 参数:将生成的签名字符串作为 sign 参数的 value 拼接到请求数据中。
- Encode 请求数据:对所有一级 key 的 value 值进行 UrlEncode 编码。
- 拼接完整的请求 URL:将编码后的请求数据发送至商户系统指定的 URL。
验签
验签的全称是:验证指定内容的签名是否正确。
商户系统收到支付宝发送的异步通知后,商户系统需要对支付宝发送的通知参数进行验签处理。商户系统验签的步骤是:
- 拼接 “待验签字符串”;
- 获取签名字符串 sign;
- 调用验签方法 verify(),获得验签结果。
1、拼接 “待验签字符串”
对支付宝发送的通知参数进行验签的第一步是:拼接 “待验签字符串”。
- 获取签名的参数:在通知返回的参数列表中,除去 sign、sign_type 两个参数外,凡是通知返回的参数都是签名的参数。
- 对签名的参数进行 UrlDecode 解码
- 对签名的参数进行字典排序:字典排序是按照参数的第一个字符的 ASCII 码递增排序(字母升序排序)。如果参数的第一个字符相同,则按照参数的第二个字符的 ASCII 码递增排序,以此类推。
- 对排序后的参数进行拼接,得到 “待验签字符串”:将排序后的参数与其对应值,组合成
参数=参数值
的格式,参数与参数之间用 & 字符连接起来,此时生成的字符串为 “待验签字符串”。
body=大乐透2.1&buyer_id=2088102116773037&charset=utf-8&gmt_close=2016-07-19 14:10:46&gmt_payment=2016-07-19 14:10:47¬ify_time=2016-07-19 14:10:49¬ify_type=trade_status_sync&out_trade_no=0719141034-6418&refund_fee=0.00&subject=大乐透2.1&total_amount=2.00&trade_no=2016071921001003030200089909&trade_status=TRADE_SUCCESS&version=1.0
2、取出签名字符串 sign
对支付宝发送的通知参数进行验签的第二步是:从通知返回的参数列表中,取出签名字符串 sign。
3、调用验签方法 verify()
对支付宝发送的通知参数进行验签的第三步是:调用签名算法对应的验签方法 verify(),根据验签方法 verify() 的返回结果判定是否验签通过。
调用签名算法对应的验签方法时,需要提供以下几个参数:待验签字符串 content、字符编码方案 charset、签名字符串 sign 和 签名者的公钥 publicKey。验签方法 verify() 的处理逻辑如下:
- 对 “待验签字符串” 进行编码,得到字节数组:使用指定的字符编码方案,将 “待验签符串” 编码为字节数组(byte 类型的数组)
- 对 “签名字符串 sign” 进行 Base64 解码,得到字节数组:得到的这个字节数组即为当时签名之后的初始字节数组(密文)。
- 使用公钥验证签名:
boolean varifyResult = boosignature.verify(Base64.decodeBase64(sign.getBytes()))
- 使用签名者的公钥 publicKey 对 密文 进行 解密,得到 “支付宝通知的摘要”;
- 对 “待验签符串” 对应的字节数组做摘要,得到摘要结果;
- 将 “商户计算出的摘要结果” 和 “解密得到的摘要” 作比较:如果二者相同,则说明验签成功;否则说明验签失败。
验签成功后,商户系统根据通知参数进行业务处理。
参考资料
自行实现签名 - 支付宝文档中心 (alipay.com)
自行实现验签 - 支付宝文档中心 (alipay.com)
全球动态:支付宝接口的数字签名
全球头条:连Intel都难逃寒冬:美国加州部门裁员数百人
自行车数量比人口还多 荷兰水下自行车库启用:比汽车车库还豪华
世界简讯:孩子抱走小狗还给大狗磕了3个头 剧情反转没血缘关系:网友调侃白磕
iPhone 15全系USB-C!iOS 17曝光:几乎没变化 苹果开始“摆烂”
每日信息:比燃油车更污染 吐槽新能源车愚蠢!丰田换帅 扩大纯电动汽车销售
直击近地行星2023BU与地球擦肩而过:卡车大小、时速高达5.4万公里
43英寸Mini-LED 144Hz高刷屏:三星宣布奥德赛Neo G7显示器进军全球市场
环球即时:AMD官方发布RX 7000/6000系显卡实测:老显卡更具性价比
每日焦点!Linux笔记03: Linux常用命令_3.5权限管理命令
焦点速讯:ASP.NET Core+Element+SQL Server开发校园图书管理系统(二)
长沙游客吐槽网红店排队4538桌 全家吃泡面引热议:春节被挤爆 网友感慨都是人
11.6英寸大屏+中置单摄模组:一加首款平板现身海外
最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]
焦点要闻:假期剩5天作业剩7本 女孩崩溃大哭表示不想活了:网友笑趴太真实
我们没偷票房、幽灵场等!《满江红》被质疑抄袭《龙门镖局》宁财神回应
每日简讯:用状态机实现通用多字节SPI接口模块
世界播报:满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣
天天简讯:辽宁上空惊现“三个太阳”幻日奇观 手机拍下罕见一幕:专家揭秘成因
数字签名技术
当前滚动:小朋友哈尔滨室外舔冰雕舌头被粘:东北的冰真的是甜的吗?
环球热议:信号大升级!iPhone 15系列有望支持Wi-Fi 6E传输标准
今热点:实现有序表的增删改查
世界最资讯丨核显的春天来了!SK海力士发布最快LPDDR5T内存:飙上9.6Gbps
每日看点!明年再见!充电器一拔我和浪浪山道别了引热议 专家建议春节假期延至9天
东南亚赚大:中国游客彻底抛弃日本、韩国 这波打击影响太惨
全球速看:一家5人花100块去看“时空隧道” 直言开心就值:网友调侃参观蔬菜大棚
京东最便宜2TB SSD秒杀:569元还是TLC颗粒
世界新消息丨票房超19亿!网友质疑《满江红》剧情抄袭《龙门镖局》 10年前梗都照搬
全球头条:日本公司推出懒人沙发:走哪躺哪
环球滚动:还要更便宜!特斯拉:近5年车辆平均售价已减半 将继续控制成本
环球热消息:新增万名雇员!2022年荷兰半导体巨头ASML营收破纪录
【快播报】驾驶辅助技能大比拼 特斯拉殿后
天天看点:【个人笔记】2023年搭建基于webpack5与typescript的react项目
获11年来最大营收增幅照裁不误:IBM宣布将裁员3900人
世界快讯:苹果官网开售Mac Studio“锁具套装”:一个密码锁卖到548元
世界观察:为啥特斯拉疯狂降价到20多万 利润依然最高?官方揭秘真相
焦点!三星Galaxy S23 Ultra拍摄样张流露:30X变焦效果比S22 Ultra 20X更清晰
微速讯:RTX 4060将至:TGP功耗160W 可能采用传统8PIN供电
重点聚焦!影院回应《流浪地球2》改播《满江红》引热议:设备故障不能放
天天视点!全球数万用户遭波及:微软终于修复OneDrive等服务宕机问题
快资讯:Intel新款锐炫显卡现身:16 Xe核心 比A770弱42%
环球滚动:读Java8函数式编程笔记01_Lambda表达式
快资讯丨你为啥还不升级Win11?微软:1月31日停售Windows 10
世界速递!腾讯NVIDIA达成深度合作:打造低延迟超大分辨率渲染平台
当前视点!手机Galaxy S23系列手机保护壳曝光:独占功能 可滑动解锁
win11启动虚拟机出现蓝屏
全球聚焦:女子零下14度观影被冻到扶墙退场 网友:这是5D电影 身临其境
天天视讯!2023春节档总票房突破50亿!有望冲击史上最强春节档
世界短讯!向Redmi Note 12 Pro极速版看齐!小米Poco X5 Pro即将发布:骁龙778G配1亿像素主摄
世界热消息:安徽一电竞酒店装30块RTX 4090显卡:梦幻装备 玩了回不去
看热讯:Dart常用核心知识
世界热讯:带薪撸猫 女子过年不回家搞副业十天赚几千
编程与类型系统读后总结与感想
MySQL数据库
全球快资讯:国产新型量子计算机即将发布 中国第一家量子计算公司打造
短讯!《流浪地球2》智能机械狗“笨笨”开售:899元 支持遥控
每日信息:vue-grid-layout数据可视化图表面板优化过程所遇问题汇总
焦点讯息:索尼再次动刀!宣布电视、相机等产品即将涨价14%
全球实时:魅族20外观设计现身:极窄直屏边框颜值在线
头条:回文数-力扣
每日看点!蔚来车主占三个车位充电引争议 汽车博主:好像只能这么充
男孩打开新年礼盒发现是试卷后大哭:寒假作业还没有写完
天天视讯!漠河零下53℃极寒 有居民屋里穿短袖!网友集体羡慕:我们这取暖靠抖
当前快播:2022年度中国汽车保值率:日系车屠榜 秒杀BBA豪华车
学习笔记——NoSQL数据库;Redis概述;redis中常用的数据类型(key、string)
环球热头条丨比亚迪或进军保险业 将全资接盘易安财险
春运时间翻倍!电动车车主称油车返乡8小时 他开了15小时
每日视讯:《满江红》票房逆跌 成春节档冠军!张艺谋刷新个人纪录
天天速讯:海外观众评价《流浪地球2》:不比《星际穿越》差
速度高达9.6Gbps!SK海力士发布全球最快移动DRAM
世卫组织:全球50亿人无法避免反式脂肪 会致命的有毒化学物质
在家享受牛奶SPA!舒蕾沐浴露大促:10元/斤
世界头条:马斯克或参与特斯拉自动驾驶视频造假?细节曝光
观速讯丨微软裁员1万人 遣散费高达8亿美元 平均每人获赔54万元
MiniLED国货崛起?2023年的电视不太好下手
iPhone 15 Pro相机将迎来质变:5倍潜望长焦赶上安卓阵营
2023春节档票房破40亿!《满江红》14亿票房领跑
环球播报:吃饺子就是得蘸醋 这件事在几亿年前就决定了!
每日观察!印度收到90亿光年外星系无线电信号 天文学家:外星人没有参与
复旦教授:《流浪地球2》不输于近5年任何一部国外科幻大片
天天观速讯丨27年前 中国自研第一台64位超级小型计算机 当时世界最先进
【天天报资讯】《流浪地球2》:当一部电影演到第三个钟头
谁说中国人造不出保时捷?
今日视点:RTX 4090依旧掉帧!SE大作《Forspoken》今日发售:成新一代硬件杀手
全球今日报丨全球汽车畅销榜:美国忠爱大皮卡 国人狂买比亚迪
什么是闭包?
全球新动态:猫咪机器人下国际象棋快逼疯人类 顶级棋手也只能和它打成平局
【天天播资讯】薛之谦发文告别暴雪 自称“曲阳爆叉叉兵一波流王”
mac的m芯片安装gup版本的pytroch,并链接到pycharm
泰山温度-22℃ 游客大雪中抱团 网友感叹:还以为翻拍《长津湖》
每日观点:雷军告别《魔兽世界》:18年前就玩了 感慨万千 再见艾泽拉斯
兔年邮票为啥是蓝色兔子?设计者女儿说出真相
世界速讯:中国影史首个!吴京个人总票房达300亿
一加首款机械键盘来了:水晶旋钮 无小数字键
世界视点!python简单实现对桌面进行实时捕捉画面
小米汽车前脸设计图疯传 王化回应:早期招标设计稿 并非最终版
全球热点!女子吐槽羽绒服到东北变嘎嘣脆 为什么遇冷会变硬?
世界实时:学习笔记——Linux中搜索查找类命令;压缩和解压类;Linux挂载和卸载;进程线程类命令;RPM;YUM
环球热消息:太假了!网友分析《三体》动画B站真实评分为2.1分