工作中出现的问题及解决步骤总结(可能在大牛看来,很low,但自己真的有收获)

来源:互联网 发布:sai绘画软件下载 编辑:程序博客网 时间:2024/06/03 14:50

       这几天一直在做接口封装的工作,然而合作公司给的APi文档主要是对接C#,没有对接过php,所以在签名方面可能有所不同,主要是先将请求的参数通过字典排序后,拼接成字符串,然后再使用RSA私钥进行签名,签名生成后再用utf8编码,编码之后再用base64编码,最后使用http传送时,再用url编码。。。。根据文档的要求,最终形成的签名在测试时,一直提示签名错误,试了好多遍,还是如此。。。

最后在网上搜了好多类似的问题,都没能解决这个问题,

最后最后的问题是这样被解决了:

1.在原有的基础上(就是参数已经按照字典排序,并且已经拼接成字符串)

通过file_get_contents()函数来获得RSA私钥的内容

再通过$pi_key=openssl_pkey_get_private();获得私钥

     生成的签名与其他参数进行拼接


最后使用CURL函数进行调用


由于返回的是XML格式的数据,由于我们需要json格式的数据,需要先将xml格式转化成对像,然后再将对象转化成json格式,代码如下:

在将数据返回给前端时,json格式中的中文字体被自动编码了,此时只要加上

就可以完美解决了


 




1 0