1、在同一个PID前提下,报关接口使用MD5签名方式,而支付/退款 接口使用RSA接口。支付宝是不是有什么机制可以保证(或者说双方约定),这个MD5的秘钥就只能用作报关接口,不能用作其他接口,特别是不能用作支付/退款接口?
需要商户请求时自己进行控制
2、报关接口同步返回参数里sign_type有三个签名方式可选:DSA、RSA、MD5,具体哪一个是不是取决于我们请求的签名?也就是说我们请求里用哪种签名方式,那么返回也使用同样的签名方式?
对于不同的两种签名方式共同使用的场景,比如同时启用MD5和RSA。可以进行不同的权限限制吗?
比如用RSA的可以用作支付和退款,但MD5的就只能够用作海关报关。
这个问题的背景是,如果想实现不同商户客户端具备不一样的接口安全等级和认证方式,有相应的方案或者建议吗?
>>支付和退款 是针对海关报关吗?技术层面上,service=A,对应用RSA;service=B,对应MD5,是可以的。
>>取决于您请求的签名方式,您的理解是对的。
3、支付/退款接口使用的秘钥 和 报关使用的秘钥是不是同一个?还是说这取决于两者是不是使用相同的签名方式?
>>如果支付/退款接口 和报关接口使用不同的签名方式,比如支付/退款接口使用RSA,而报关接口使用MD5,那么这两者使用不同的秘钥。
>>如果支付/退款接口 和报关接口使用相同的签名方式,比如都是MD5,那么就使用相同的秘钥,因为对于同一个商户,同一时期同一种签名方式只有一个秘钥。
总结:不同的接口可以使用不同的签名加密规则来进行数据请求
关于alipay还有一个问题,根据https://docs.open.alipay.com/common/104741 “返回参数验证签名”章节,里面讲到API调用端需要验证返回的签名和notify_id,但是支付接口和报关接口是没有返回notify_id字段的。是不是这种情况就只需要验证签名就可以了?谢谢!
每个接口都有自己的特性,没有则无需验证,只验证签名