支付宝实现JS调起支付你必须知道的坑(40004 ACQ.INVALID_PARAMETER)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/OHRadiance/article/details/84395974

前言–支付宝开发碰到任何问题,首先考虑官方社区,不要去百度。支付宝的第二份文档就分散在社区的各个帖子里。

需求:在支付宝内打开网页后调起支付。

我不去一篇篇贴文档了。因为,文档都能查得到,time work而已。但你肯定会遇到坑,不停地报–40004 ACQ.INVALID_PARAMETER。
坑1–total_amount这个参数是string,cnm,连官方例程中都是float,好不好。用了支付宝的云排查,才发现,一直在报这个参数为空。
坑2–buyer_id必须传,什么特殊可选,扯蛋。

总的来说,相比微信的开发文档。支付宝的文档既缺少关联性,又缺少整体脉络,更不对一些歧义的细节加以说明。
比如:开发者关心支付,那就该单独为支付列出一个总纲,然后具体阐述即可。但是这些东西是散落在一堆文档中的。在手机网站支付的文档中就看不到H5支付相关,支付宝只对文档做了纵向归类,但没有横向的整理。
再者,H5支付用到的jsapi,里面的tradeNO这个参数,一点说明都没有,不告诉你应该从哪个接口去获取,只能根据注解去猜。
更可恨的是,官方的示例都有错,重要的参数不作详细说明。
当然,也并不是没优点。至少,支付宝没有微信那么一套繁琐的流程,只要配置一个授权回调域名就可以了。

更新at 20181127:
关于notify_url的设置,
不能放在biz_content中,应该在request中设置。
因为它是公共参数,不是特定参数。
躺这个坑,一半是因为眼瞎,另一半是惯性思维,
官方例程中biz_content中有个show_url参数,怎么就让我潜意识认为notify_url因为放在其中。
其实,这个和阿里自身的文档缺失有很大原因。
开发文档有问题始终不更新,把开发者论坛当成了开发文档的补充。。。醉
alipay.trade.create完成的支付,回调的定义没有文档有直接说明,
在官方论坛上,官方人员才回应了这个接口的回调和扫码异步通知的回调是一样的。
可是开发文档明明白白写了,那篇文档只适用于扫码支付。
你说,这叫人如何能明白。自然会让人在碰到问题时,本能的对阿里的接口不信任。
吐槽结束,建议支付宝还是要学微信,做一些针对开发的专题文档。
这次用到的H5支付,所需要的资料都是散落在各个角落里。

最后,还是要感谢官方支付宝小二。
在论坛跟帖后,15分钟就回复了。
当然,大家提问的时候也应该尽量先自查,用好云排查。
然后,看下问题被处理时需要的参数,提前提供出来,节省双方时间。

更新at 20181128:
关于退款。
秉承支付宝一贯的原则--就不告诉你。
退款接口调用没啥问题,问题是退款也是有异步通知的。
而且,这个通知是你创建订单时候定义的。
而且,这个通知是和支付完成通知几乎一样的。
而且,按照官方解释--你只能根据是否存在refund_fee来判断退款是否成功。
[社区的官方指南](https://openclub.alipay.com/read.php?tid=8328&fid=72&page=1)
你说,你就把这篇文档贴在退款接口那作补充说明不好么。
展开阅读全文

没有更多推荐了,返回首页