更新时间:2023-04-06 15:04:53收藏我的文档设置返回文档目前开放平台支持的签名方式有两种:普通的 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 和公钥证书签名验签的区别●签名验签专区