标识符
不同的标识符用于核对和跟踪经过支付系统的交易。 这些标识符会在您的收单行的结算报告中使用,帮助您识别每笔交易。
您在向 Mastercard Gateway 发送请求时提供标识符。 理想情况下,所有系统(即您自己的系统、网关和您的收单行)可以使用相同的标识符。 但是,不同的系统有不同的要求,并且通常需要标识符的组合。 您创建的每个订单可以有三种不同的标识符:
标识符的类型
您创建的每个订单可以有三种不同的标识符:
- 订单 ID: 这是强制性标识符,您需要在每个订单的第一次交易中进行定义。 此值作为请求和响应正文中的 orderID 字段提供,或作为
orderID查询参数提供,具体取决于操作。 这是强制性标识符,您需要在每个订单的第一次交易中进行定义。 方便起见,请在您自己的系统中使用一个自然键作为order ID,如购物车 ID 或发票号。 这使得您可以轻松地在系统和网关之间跟踪订单。 由于网关还会尝试在可能的情况下在收单行消息中使用订单 ID,因此全部三个系统(即您的系统、网关和您的银行)可以通过一个通用标识符链接起来。 - 订单编号: 在某些情况下,您在自己的系统中使用的订单 ID 不能在网关中使用,因为它们不符合网关的要求。 例如,如果您的系统滚动订单 ID,在超过设定的上限时环绕,或将多个投标分组在一个订单下,系统中的订单 ID 不会在网关中作为唯一标识符。 在这种情况下,您必须创建新的唯一
order ID来在网关中使用。 此外,您可以提供一个可选值order.reference,其中包含您在自己的系统中使用的标识符,并允许您在系统和网关之间跟踪订单。 - 收单行标识符: 由于网关必须将标识符传递给收单行,因此它会尝试使用您的
order ID。 但是,如果这不适合您的收单行,网关会将此值转换为符合收单行的字段长度和格式要求的值。 如果您想控制网关向收单行提供的值,您可以在请求中提供 transaction.acquirer.transactionId 值。 但是,如果该值与收单行要求不相符,网关也会在发送之前对其进行转换。 无论哪种情况,您都可以在请求响应的 transaction.acquirer.transactionId 字段中找到网关实际发送给收单行的标识符。 如果网关必须转换标识符,存储响应值以能够将收单行的付款详细信息与系统中的订单进行匹配。
要确定您的收单行是否对标识符有任何特定要求,以及您的收单行是否支持商家输入 transaction.acquirer.transactionId 字段,请联系您的支付服务提供商 (PSP)。 如果您的订单 ID 不符合要求,您可以考虑是否可以修改您的订单 ID,来让它符合收单行的要求。
如果您自己的订单 ID 无法在全部三个系统(即网站、网关和收单行)中使用,您可以在强制订单 ID 之外,使用订单参考或收单行识别码二者其中之一,或同时使用二者来为每个系统提供单独的识别码。
交易
为了识别订单中的各项交易,网关使用交易 ID。 此值作为请求和响应正文中的 transaction.id 字段或特定操作的 transactionID 查询参数提供。 如果您的系统使用唯一标识符跟踪交易,请使用它。 否则,使用任意的连续数字或随机数字,只要它对同一订单中的每个交易都是唯一的。
要在卡收单行处识别交易,使用收据。 该值在请求响应的 transaction.receipt 字段中返回,但该值可能不是唯一的。