开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
接入指南 > 接入准备 > 签名验签 > 确定签名方式
收藏
我的文档
设置
目前开放平台支持的签名方式有两种:普通的 rsa2 签名方式和公钥证书签名方式。
支付宝开放平台 sdk 封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用,点此 。 
一、密钥交互原理
商户应用私钥用于请求参数签名,商户应用公钥用于 上传到平台获取支付宝公钥 进行回调数据验签。
商户使用私钥生成请求签名参数,请求到支付宝,支付宝利用商户上传的商户公钥进行验签请求参数并处理,处理结果使用支付宝私钥进行签名,返回给商户服务器,商户利用配置到项目中的支付宝公钥进行验签。 
密钥交互流程图  

①:商户上传自己的商户公钥到支付宝服务器 ;
②:使用商户私钥请求签名参数 ;
③:签名以后的参数请求到支付宝;
④:支付宝服务器使用商户上传的商户公钥,验签商户请求参数,并处理支付结果;
⑤:对商户支付结果使用支付宝私钥签名 ;
⑥:商户使用支付宝公钥验签支付返回的回调数据结果。 
二、普通 rsa2 签名
开放平台 sdk 封装了签名实现,只需在创建 defaultalipayclient 对象时,设置请求网关 (gateway)、应用 id (app_id)、应用私钥 (private_key)、编码格式 (charset)、支付宝公钥 (alipay_public_key)、签名类型(sign_type)即可,报文请求时会自动进行签名请求到支付宝,支付宝利用商户上传的商户公钥进行验签请求参数并处理,处理结果使用支付宝私钥进行签名,返回给商户服务器,商户利用配置到项目中的支付宝公钥进行验签。
此时涉及到以下几个密钥:   
rsa_private_key
商户 pkcs1 私钥(又称原始私钥)
适用开发语言 php ,.net 等。
rsa_private_key_pkcs8
商户 pkcs8 私钥
适用开发语言 java,android,ios 等。
rsa_public_key
商户公钥
上传到支付宝后台服务器
alipay_public_key
支付宝公钥
 配置到商户项目中 密钥交互原理 
说明:支付宝私钥是不对外开放的,商户自己的私钥也要注意保密不要对外展示,否则会影响账号安全!  
三、公钥证书签名
把以下内容配置在代码中,对请求内容进行签名,并对支付宝返回的内容进行验签:
appid
应用私钥 (private key)
应用公钥证书(public key cert)
支付宝公钥证书(alipay public key cert)
支付宝根证书(alipay root cert)
开放平台 sdk 封装了签名实现,只需在创建 defaultalipayclient 对象时,设置请求网关 (gateway)、应用 id (app_id)、应用私钥 (private_key)、应用公钥证书路径(app_cert_path 文件绝对路径)、支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径)、支付宝 ca 根证书文件路径(alipay_root_cert_path 文件绝对路径)、编码格式 (charset)、签名类型 (sign_type)即可,报文请求时会自动进行签名。
说明:支付宝私钥是不对外开放的,商户自己的私钥也要注意保密不要对外展示,否则会影响账号安全! 
四、注意事项
如何使用 rsa 签名验签
如何使用证书签名验签
rsa2 和公钥证书签名验签的区别
签名验签专区
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图