跳至主要內容

收款(Pay-In · 墨西哥)

大约 5 分钟

墨西哥地区 收款(Pay-in) 接口(MXN)。详见 支付方式

Request

POST/v2.0/transaction/pay-in

Request Path:

sandbox: https://sandbox-gateway.smilepayz.com/v2.0/transaction/pay-in
production: https://gateway.smilepayz.com/v2.0/transaction/pay-in

Header Parameters

FieldRequiredTypeDescription
Content-TypeMStringapplication/json 请求体。
X-TIMESTAMPMStringFormat: yyyy-MM-ddTHH:mm:ss±HH:mm (e.g. Mexico CST −06:00).
X-SIGNATUREMString请求体签名(见产品文档 签名生成)。
X-PARTNER-IDMStringYour merchantID

Body Parameters

FieldRequiredTypeDescription
orderNoMString(32)商户唯一订单号
purposeMString(64)展示用摘要
merchantMObject含 merchantId 及可选子商户字段。
    merchantIdMStringSmilepayz merchantId。
    merchantNameOString商户展示名。
    subMerchantIdOString可选子商户编号。
    subMerchantNameOStringsubMerchantId 的名称。
moneyMObjectcurrency 与 amount 金额对象。
    currencyMString固定为 MXN。
    amountMNumber金额(最多 2 位小数)。小数位见 金额 Money
paymentMethodMString通道编码(见 支付方式 文档)。
expiryPeriodONumberExpiryPeriod,默认 3600。
redirectUrlOString(256)支付后 HTTPS 回跳,最长 256。
callbackUrlOString(256)异步通知 HTTPS,最长 256。

Example Body – Transaction Request:

Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00-06:00
X-SIGNATURE: 7MHd9v5/m9JeqmDZVwWBZUZ5J5...7120QnFEny7Qm7uQR1G0TWCh10fsU6nVxiRoeoQ==
X-PARTNER-ID: 20001

Responses

HTTP Request

FieldRequiredTypeDescription
Content-TypeMStringapplication/json 请求体。
X-TIMESTAMPMStringFormat: yyyy-MM-ddTHH:mm:ss±HH:mm

Body Parameters

FieldRequiredTypeDescription
codeMString00 成功,其余失败。
messageMStringUTF-8 结果说明。
orderNoMString商户唯一订单号
tradeNoOString平台 tradeNo。
merchantMObject含 merchantId 及可选子商户字段。
    merchantIdMStringSmilepayz merchantId。
    merchantNameOString商户展示名。
    subMerchantIdOString可选子商户编号。
    subMerchantNameOStringsubMerchantId 的名称。
moneyMObjectcurrency 与 amount 金额对象。
    currencyMString固定为 MXN。
    amountMNumber金额(最多 2 位小数)。小数位见 金额 Money
transactionTimeMStringyyyy-MM-ddTHH:mm:ss±HH:mm
channelMObject通道数据(paymentUrl、qrString 等)。
    paymentMethodMString通道编码(见 支付方式 文档)。
    paymentUrlOString收银台跳转 URL。
    qrStringOString通道返回的复制串(若有)。
    receiverBankNameOStringBank / brand code when returned.
    vaNumberOStringVirtual account / reference when returned.
statusOString订单或支付状态枚举值。
responseCodeOStringChannel result code when returned (e.g. CODI / OXXO).
responseMessageOStringChannel result text when returned.
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:00-06:00

子订单交易与回调逻辑

墨西哥代收(如 SPEI)在渠道侧可能对同一商户订单产生多笔入账。平台约定如下:

  1. 下单只创建主单:首次 /v1/pay 只生成一笔主交易;不会在下单时预先拆分子订单。
  2. 额外入账生成为子订单:后续成功入账若被识别为子单,平台会生成独立子订单,拥有独立的 tradeNo、实际入账金额、费用、结算与商户回调。
  3. 回调字段口径
    • orderNo:始终为原始商户订单号(与主单相同)。
    • tradeNo:本次交易的平台单号(主单或子单各自不同)。
    • money.amount:本次入账金额(子单为实际入账金额,不一定等于主单下单金额)。
  4. 幂等:同一 orderNo 可能收到多次成功回调。必须以 tradeNo 做交易级幂等,不能仅按 orderNo 去重,否则可能漏账或重复入账。
  5. 主子单相互独立:子单金额不会累计推动主单变为成功,也不会自动改写主单金额/状态。可用 交易状态查询 查看 subOrderList

提示

每笔主单 / 子单回调均需独立验签,并返回纯文本 SUCCESS

Notification/Callback

回调签名 ≠ 请求签名

回调里的 X-SIGNATURE 不能拿发请求那套去验。规则见 回调验签

HTTP Request

FieldRequiredTypeDescription
Content-TypeMStringapplication/json 请求体。
X-TIMESTAMPMStringFormat: yyyy-MM-ddTHH:mm:ss±HH:mm
X-SIGNATUREMString回调验签

Body Parameters

FieldRequiredTypeDescription
orderNoMString商户唯一订单号。主单与子单回调均使用同一原始商户订单号
tradeNoMString平台 tradeNo。主单回调为主单号;子单回调为子单号。交易级幂等请用本字段。
merchantIdMStringSmilepayz merchantId。
merchantNameMString商户展示名。
subMerchantIdOString可选子商户编号。
subMerchantNameOStringsubMerchantId 的名称。
paymentMethodMString通道编码(见 支付方式 文档)。
transactionTimeMStringFormat: yyyy-MM-ddTHH:mm:ss
statusMString订单或支付状态枚举值。
moneyMObjectcurrency 与 amount 金额对象。
    currencyMString固定为 MXN。
    amountMNumber本次交易金额(最多 2 位小数)。子单为实际入账金额。小数位见 金额 Money
payerOObject付款人对象(见 Payer 模型)。
    nameOString收款人全名(UTF-8)。

Return

Important

Respond with the string SUCCESS only.

{
    "orderNo": "20001mxspei394eeb7b44c2460",
    "tradeNo": "141200112412131711531135",
    "merchantId": "20001",
    "merchantName": "Smilepayz Demo Store",
    "subMerchantId": "",
    "subMerchantName": "",
    "paymentMethod": "SPEI",
    "transactionTime": "2024-12-13T04:11:54-06:00",
    "status": "SUCCESS",
    "money": {
        "currency": "MXN",
        "amount": 250000
    },
    "payer": {
        "name": "Juan Carlos Hernández"
    }
}