订单号、交易编号和发票编号之间的差异
Posted
技术标签:
【中文标题】订单号、交易编号和发票编号之间的差异【英文标题】:Difference between order number, transaction id and invoice no 【发布时间】:2015-02-27 06:19:52 【问题描述】:我正在实施我的第一个支付网关,虽然我的情况可能很简单,因为我可以使所有三个都相同,但我想知道一些应该不同的情况。
同样,订单号、交易 ID 和发票号之间有什么区别。以及任何其他形式的交易相关信息?
它们都必须是唯一的吗?
最后,交易完成后我要向客户展示什么?
注意:我是商家,但与任何其他域(例如银行、信用卡、支付网关或其他任何东西)有关的情况也是可以接受的。
【问题讨论】:
【参考方案1】:我们与来自不同银行的许多不同的卡授权 API 集成,在高级级别上,没有标准的 API 接口可供您在获得商家帐户时使用。 p>
根据我的经验:
订单号(或等价物) 是商家提供的值,在交易请求中传递给银行,然后银行将其与交易相关联。
这允许使用商家定义的值识别银行系统上的交易(用于报告/对账等)。
一般来说,这应该是唯一的。
transaction id(或等价物)是银行返回的用于识别其系统上的交易的值。这将是独一无二的。
invoice no 这与授权过程无关,因此与银行提供的附加功能有关,并且是特定于实施的(例如将多个产品组合在一起的一种方式)。
最后,交易完成后我要向客户展示什么?
您可以将与交易相关的所有信息存储在数据库中,并从该记录集中生成您自己的交易 ID;这就是您要向用户展示的内容。
【讨论】:
在我的情况下,我应该向支付网关提供所有 3 个详细信息(这提供了 API,我们不直接与银行和信用卡网络打交道),这将返回 Root transaction reference no (由银行提供)、授权码(由银行提供)、EPG 交易参考编号(由支付网关本身提供)。所以我猜在这种情况下,订单号、交易 ID 和发票号只是额外的信息,所有 3 都可以相同。有什么想法吗?【参考方案2】:在我们进入语义之前,让我们讨论一下我们遇到的不同 ID。
在我们的系统上,我们会生成发票记录。该记录及其链接表包括客户、项目、日期、价格、税金、总计和付款。我们的数据库为该行生成一个唯一 ID。此 ID 用于连接表。
我们处理的每笔付款都有一个来自付款处理器的 ID(除非付款存入我们客户的内部帐户)
在我们创建第一条记录之前,我们为交易生成一个唯一的逻辑 ID。
以下是我们对它们的命名,以及我们如何使用它们。
订单 ID 或记录号:数据库生成的 ID。通常是一个递增的整数。用于链接表。也用作简短、简洁、用户友好的 ID 发票 ID:我们为发票创建的唯一逻辑 ID。我们使用 GUID。这是我们与付款交易一起发送的内容。 交易 ID 或付款 ID:从付款处理器返回的 ID。使用各种格式。您可以跳过发票 ID 而只使用订单 ID。不过,我们喜欢在将记录存储到数据库之前就可以使用一个逻辑 ID。
【讨论】:
以上是关于订单号、交易编号和发票编号之间的差异的主要内容,如果未能解决你的问题,请参考以下文章