之前一直不知道这2种状态到底有什么不同。支付宝中担保交易和即时到账交易对其的描述为:
- TRADE_SUCCESS 交易成功(或支付成功)
- TRADE_FINISHED 交易完成
一头雾水。。。。。。OK,找例子来说明吧:
例子一:
- 即时到账普通版。 普通版不支持支付完成后的退款操作,即用户充值完成后,该交易就算是完成了,这笔交易就不能再做任何操作了。
- 即时到账高级版。 这个版本在用户充值完成后,卖家可以执行退款操作进行退款,即该交易还没有彻底完成,卖家还可以修改这笔交易。
OK,开测。当用户在支付宝网站上充值完成后,这个时候支付宝的通知消息中,如果是即时到账普通版,那么这时的交易状态值为: TRADE_FINISHED;如果是即时到账高级版,此时的交易状态值就为:TRADE_SUCCESS。
我第一次接入的时候在我网站中判断用或来做,即如果是交易成功或者交易完成则发货。这时就错大了。。。。。。因为作为即时到账高级版,在TRADE_SUCCESS完成后过了三个月,支付宝又会主动再推送一个消息为TRADE_FINISHED。所以如果我用以上的逻辑来做发货,那么我接入即时到账高级版的话,就会发货2次。
这个问题是因为我没有彻底理解清楚这2种关系造成的。
仔细琢磨了一下,发现了它们两者最本质的差别。TRADE_SUCCESS状态代表了充值成功,也就是说钱已经进了支付宝(担保交易)或卖家(即时到账);这时候,这笔交易应该还可以进行后续的操作(比如三个月后交易状态自动变成TRADE_FINISHED),因为整笔交易还没有关闭掉,也就是说一定还有主动通知过来。而TRADE_FINISHED代表了这笔订单彻底完成了,不会再有任何主动通知过来了。
综上所述,收到TRADE_FINISHED请求后,这笔订单就结束了,支付宝不会再主动请求商户网站了;收到TRADE_SUCCESS请求后,后续一定还有至少一条通知记录,即TRADE_FINISHED。所以,在做通知接口时,切记使用判断订单状态用或的关系。
相关推荐
本篇文章将详细介绍支付宝的"单笔交易查询接口"(single_trade_query),以及如何利用该接口进行实际操作,包括接口文档的理解和多语言DEMO的应用。 "单笔交易查询接口"(single_trade_query)是支付宝提供的一种...
版本号:V1.2 上一版本号:V1.1 ...修改to_seller_fee参数名称和参数说明(笔误:“买家”应为“卖家”) 版本号:V1.2 更新时间:2014-10-10 更新内容: www.xxx.com(虚构域名) 改名为 商户网关地址
支付宝单笔交易查询接口(single_trade_query)是一个在线服务,用于商户查询支付宝交易的详细信息。该接口允许商户根据支付宝交易订单号或商户网站唯一订单号查询交易状态、金额等详细信息,从而用于对账系统。该...
通知参数包括`trade_status`(支付状态,如`TRADE_SUCCESS`)、`total_amount`(支付金额)、`out_trade_no`(商户订单号)、`trade_no`(支付宝系统订单号)和`notify_id`(支付宝通知ID)。商户需要对这些参数进行...
支付宝接口文档PDF是一个详尽的指南,主要针对开发者和系统集成商,旨在帮助他们理解和实现与支付宝系统的交互。这份文档包含了大量的代码示例,确保了实际操作中的清晰性和易用性。"纯网关接口(create_direct_pay_...
支付宝H5接口文档的核心是提供一个扫码支付的功能,允许用户通过扫描二维码完成在线交易。这个接口主要用于移动设备上的网页应用,使得商家能够集成支付宝作为支付选项。以下是详细的知识点解析: 1. **扫码支付...
《Python库alpaca_trade_api-1.3.0-py3-none-any.whl详解》 在Python的开发世界中,库是构建复杂应用程序的重要基石。它们提供了预先封装的功能,使得开发者可以快速实现特定任务,而无需从零开始编写代码。本文将...
"纯担保交易接口-create_partner_trade_by_buyer"是支付宝提供的一种特定服务,旨在帮助网站所有者集成支付宝支付功能,尤其适用于非网店论坛系统的独立技术开发的网站。此接口允许买家在商家网站上进行购物时,资金...
支付宝支付接口及文档是开发者接入支付宝支付功能的重要参考资料,它涵盖了从申请接口、集成到测试以及正式上线的全过程。在本文中,我们将深入探讨支付宝支付接口的关键知识点,帮助你理解和实施这一过程。 1. **...
**MT4复盘软件Trade_Simulator详解** MT4(MetaTrader 4)是全球金融市场广泛使用的交易平台,尤其在外汇交易领域。它提供了丰富的图表、技术分析工具和自动交易功能。而Trade_Simulator是一款专为MT4设计的复盘...
支付宝接口文档PHP版主要涵盖了与支付宝交互的各种API接口,这些接口是PHP开发者在集成支付宝支付功能时必须了解和掌握的关键知识点。在这个文档中,你将找到关于担保交易、直连支付等多种支付方式的具体实现示例,...
trade_query`接口文档中,会详细介绍请求参数如`app_id`、`format`、`charset`、`sign_type`、`timestamp`、`version`、`method`(即`single_trade_query`)、`partner_id`、`trade_no`或`out_trade_no`等的含义和填写...
《EA_MTDriver_onekey_trade.zip:EA 面板与MTDriver一键交易系统详解》 在金融交易领域,特别是外汇市场,MetaTrader 4(MT4)平台因其强大的图表分析和自动化交易功能而广受欢迎。本文将深入探讨“EA_MTDriver_...
支付宝SDK在iOS平台上的接入是移动应用开发中的一个重要环节,尤其对于电商、社交和其他需要支付功能的应用来说。本文档将详细介绍如何在iOS项目中集成支付宝SDK以实现分享功能。 一、准备工作 1. 注册开发者账号...
这两个接口是支付宝商户接入的重要组成部分,能够帮助商户实现高效、安全的交易处理。 1. 即时到账批量退款有密接口(refund_fastpay_by_platform_pwd) 即时到账批量退款有密接口是支付宝提供的一种退款服务,允许...
支付宝接口文档是开发者进行支付宝集成时的重要参考资料,它详尽地阐述了如何与支付宝系统进行交互,实现各类支付、退款、查询等业务功能。本文将深入解析这些知识点,帮助开发者更好地理解和使用支付宝接口。 1. *...
- `out_trade_no`:支付宝返回的商户订单号,与请求中的`tradeNo`相同。 - `qr_code`:二维码地址,生成的二维码码串,可用于生成二维码图片。 支付回调通知是支付宝在交易完成后向`notifyUrl`发送的信息,主要参数...
在PHP开发中,接入支付宝单笔订单查询接口是一项常见的任务,尤其对于电商平台或者在线支付系统而言,能够实时查询订单状态是至关重要的。本教程将详细讲解如何使用PHP与支付宝API进行交互,实现单笔订单查询的功能...
本资源提供了一套基于JSP的支付宝接口实现,包括源码和相关文档,旨在帮助开发者快速理解和应用支付宝的即时到账交易功能。 1. **即时到账交易接口(create_direct_pay_by_user)** `create_direct_pay_by_user` 是...