V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
blues9
V2EX  ›  问与答

支付宝回调的一个诡异问题

  •  
  •   blues9 · 2015-10-29 23:05:30 +08:00 · 4311 次点击
    这是一个创建于 3311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    支付宝支付成功后会回调 notify_url 作异步通知处理。
    最近发现支付宝 server 回调的请求订单是 90 天之前支付成功的订单,虽然对业务没有什么影响,但是感觉很怪异。
    按支付宝文档的说法,这个回调在不成功的情况下最多也只会尝试一天左右的时间,这些请求也确实是从支付宝的 server 发出。这会是什么问题?

    6 条回复    2015-10-30 12:23:18 +08:00
    takatost
        1
    takatost  
       2015-10-30 09:09:15 +08:00
    退款吧
    blues9
        2
    blues9  
    OP
       2015-10-30 10:49:09 +08:00
    @takatost 肯定不是,退款操作都是由操作人员在工作时间统一提交的,而这些回调的请求数是很多的,大大多于退款次数,而且发生的时间很分散,半夜都有,基本上和 90 天之前的支付时间是吻合的。
    morphinewan
        3
    morphinewan  
       2015-10-30 11:09:49 +08:00
    我碰到过类似的问题,我们用的是即时到账支付接口。在用户支付后,会发生一个回调,这只是一个已经支付完成的通知回调,在支付宝上,这个交易其实还没有结束。支付宝会给用户 90 天的退款期限,这个时间内用户可以提出退款,进入退款流程。当 90 天过后,用户并没有反悔,发起退款。那么就会再次调用你提供的回调 URL 。告诉你,交易已经结束。两次调用的回调 URL 是一样的,但是传递给你的参数有略微的不同,具体你可以参看支付宝 SDK 文档或者直接问支付宝的技术客服,他们很专业,会帮助你的。
    blues9
        4
    blues9  
    OP
       2015-10-30 11:48:22 +08:00
    @morphinewan 多谢解答。这样就能解释 90 天这个时间点了,我们现有的处理逻辑也是会返回 success 的。不过支付宝的文档里没有找到 90 天回调这个内容,最接近的是这个 http://doc.open.alipay.com/doc2/detail?spm=0.0.0.0.o7dU5n&treeId=62&articleId=103743&docType=1#s1 , 也只说明了首次支付的时候的情况(25 小时以内完成 8 次通知),请问哪里能找到这个 90 天的相关内容?
    morphinewan
        5
    morphinewan  
       2015-10-30 11:59:39 +08:00
    @yangshengwu 我之前开发支付宝接口已经是 1 年前的事情,没有在线版的文档,有个 word 文档,不过里面也没说到过这个期限。我猜应该是跟你和支付宝签订的商业合同里面带有类似的约定,我们之前也不明白为什么过了 90 天后会再次发生回调。后来在线咨询了支付宝的技术支持,才知道有这么个“约定俗成”的机制。感觉支付宝的接口也会不停迭代更改的,接口定义什么的偶有变化。他们大部分时候会通过商务部门通知签约客户的。到时候需要你们商务负责需要及时通知技术部门及时跟进才行。
    blues9
        6
    blues9  
    OP
       2015-10-30 12:23:18 +08:00
    @morphinewan 跟业务部门沟通了一下,支付宝那边没有提供特殊的文档,回头我去联系技术客服确认吧。多谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 02:29 · PVG 10:29 · LAX 18:29 · JFK 21:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.