美文网首页
吐槽-支付宝开发文档

吐槽-支付宝开发文档

作者: Real_man | 来源:发表于2019-01-04 19:32 被阅读332次

最近在做和支付宝打交道的开发,要读开发文档,今天遇到了一个问题,耗费了两小时了,都没搞定,这个可是要写给广大开发者的啊.

支付宝再进行预授权完成后,会同步返回预授权结果,格式如下:

{
    "memo" : "xxxxx",
    "result" : "{
                    \"alipay_trade_app_pay_response\":{
                        \"code\":\"10000\",
                        \"msg\":\"Success\",
                        \"app_id\":\"2014072300007148\",
                        \"out_trade_no\":\"081622560194853\",
                        \"trade_no\":\"2016081621001004400236957647\",
                        \"total_amount\":\"0.01\",
                        \"seller_id\":\"2088702849871851\",
                        \"charset\":\"utf-8\",
                        \"timestamp\":\"2016-10-11 17:43:36\"
                    },
                    \"sign\":\"NGfStJf3i3ooWBuCDIQSumOpaGBcQz+aoAqyGh3W6EqA/gmyPYwLJ2REFijY9XPTApI9YglZyMw+ZMhd3kb0mh4RAXMrb6mekX4Zu8Nf6geOwIa9kLOnw0IMCjxi4abDIfXhxrXyj********\",
                    \"sign_type\":\"RSA2\"
                }",
    "resultStatus" : "9000"
}

这个是支付宝文档自己给的案例,下面告诉我们如何验证:

  1. 提取alipay_trade_app_pay_response字段值,其代表签名原始字符串,上述示例格式如下:
{
    "code": "10000",
    "msg": "Success",
    "total_amount": "9.00",
    "app_id": "2014072300007148",
    "trade_no": "2014112400001000340011111118",
    "seller_id": "2088111111116894",
    "out_trade_no": "70501111111S001111119"
}

从第一步开始,很明显和它自己给的案例对应不上去,上面的结果中有时间戳(timestamp)和字符(charset)的,结果到提取字段的时候,没有说明任何情况把两个字段去掉了。

然后进行校验。

这个没说明情况,去掉两字段是啥意思?

支付宝文档然后接着说:

使用各自语言对应的SHA256WithRSA签名验证函数,传入签名的原始字符串、支付宝公钥、签名类型RSA、签名字符进行合法性验证。

但是其给的事例源代码中用的不是SHA256WithRSA签名:

image.png

而使用SHA256WithRSA签名的方法:


image.png

这个content怎么传都不对。

验证签名,到底那几个字段是有效的?用提供的哪个方法?

最后

文档写的对应不上,让读者读起来很费劲啊。感兴趣的参见:APP支付

晕。

相关文章

网友评论

      本文标题:吐槽-支付宝开发文档

      本文链接:https://www.haomeiwen.com/subject/biwkrqtx.html