当我们在测试支付接口的时候,发现每个接口需要将请求的敏感数据加密后才能请求接口,遇到这种问题怎么解决呢?
特别是当我们在写python接口自动化测试脚本的时候,这是必须要解决的问题。下面我来详细的写下这个过程:
首先,我们需要拿到商户的公钥和公司的公钥,商户有自己的私钥,私钥只要商户自己知道。加密的时候拿公司的公钥加密、签名时拿商户的私钥签名。 这样传送的数据会拿商户的公钥去验签才能通过。
其次,注意python和Java的加密算法要统一, 通常使用的是SHA1安全散列算法操作的。
下面上代码:
假设我们拿到了公钥和私钥,定义参数为:
public_key=''
private_key=''
要加密请求参数为:
reqData='{"tranAmt":"0.50","payType":"2","cardNo":"1234561121456789356","holderName":"王二三",' \
'"cardAvailableDate":"","cvv2":"","mobileNo":"18900001001","identityType":"01","identityCode":"130102196303250459","bizProtocolNo":"",&#