Skip to content

国际信用卡(INTERNATIONAL_CARD)

本节用于说明信用卡支付的 methodCodemethodData 字段要求。

createAndPay 请求示例(完整)

json
{
  "merchantOrderNo": "M202412220001",
  "amount": "100",
  "currency": "USD",
  "productName": "Integration Test Product",
  "productDesc": "Full flow integration test",
  "remark": "Step 2: Create And Pay",
  "methodCode": "INTERNATIONAL_CARD",
  "billingAddress": {
    "country": "US",
    "state": "CA",
    "city": "San Francisco",
    "addressLine1": "123 Test Street",
    "postalCode": "94102"
  },
  "methodData": {
    "cardNumber": "4242424242424242",
    "expiryMonth": "12",
    "expiryYear": "27",
    "securityCode": "123",
    "holderName": "Test Visa"
  }
}

Java Map 示例:

java
Map<String, Object> requestBody = Map.ofEntries(
        Map.entry("merchantOrderNo", merchantOrderNo),
        Map.entry("amount", "100"),
        Map.entry("currency", "USD"),
        Map.entry("productName", "Integration Test Product"),
        Map.entry("productDesc", "Full flow integration test"),
        Map.entry("remark", "Step 2: Create And Pay"),
        Map.entry("methodCode", "INTERNATIONAL_CARD"),
        Map.entry("billingAddress", Map.of(
                "country", "US",
                "state", "CA",
                "city", "San Francisco",
                "addressLine1", "123 Test Street",
                "postalCode", "94102"
        )),
        Map.entry("methodData", Map.of(
                "cardNumber", "4242424242424242",
                "expiryMonth", "12",
                "expiryYear", "27",
                "securityCode", "123",
                "holderName", "Test Visa"
        ))
);

请求字段(顶层)

必填

字段说明
merchantOrderNo商户订单号(幂等)
amount订单金额,最小 0.01
currency币种
methodCode支付方式编码(INTERNATIONAL_CARD
methodData支付方式数据(见下方)

可选

字段说明
productName商品名称
productDesc商品描述
billingAddress账单地址(结构见 地址结构
shippingAddress邮寄地址(结构见 地址结构
remark备注
returnUrl同步跳转 URL(优先级低于商户配置)
extParams扩展参数(JSON)
lineItems订单行项目(结构见 LineItem 结构

方法编码

  • methodCode: INTERNATIONAL_CARD

地址结构(billingAddress / shippingAddress)

字段是否必填说明
country国家(ISO-3166-1 alpha-2,例如 US / GB / CN)
state省 / 州 / 省份(US: CA / NY,CA: ON / BC)
city城市
postalCode邮政编码 / 邮编
addressLine1街道地址 1(门牌号 + 街道名)
addressLine2街道地址 2(楼层 / 房号 / 单元,可选)
name收件人或持卡人姓名

示例:

json
{
  "country": "US",
  "state": "CA",
  "city": "San Francisco",
  "postalCode": "94102",
  "addressLine1": "123 Test Street",
  "addressLine2": "Suite 5F",
  "name": "Test Visa"
}

LineItem 结构

字段是否必填说明
name商品名称
quantity数量
skuSKU
unitPrice单价(最小单位)
totalAmount总金额(最小单位)
taxAmount税额(最小单位)
taxPercentage税率(百分比 * 100)

示例:

json
{
  "name": "T-shirt",
  "quantity": 2,
  "sku": "TSHIRT-RED-M",
  "unitPrice": 2500,
  "totalAmount": 5000,
  "taxAmount": 300,
  "taxPercentage": 600
}

methodData 字段

createAndPay 接口使用明文卡字段,不需要加密字段。加密字段仅用于收银台类接口。

明文卡信息(createAndPay 必填)

字段是否必填说明
cardNumber明文卡号
expiryMonth明文有效期月份
expiryYear明文有效期年份
securityCode明文安全码 (CVV/CVC)

createAndPay 使用明文卡字段;收银台接口只允许加密字段。

其他可选字段

字段是否必填说明
holderName持卡人姓名
statementDescriptor账单描述
captureMethod扣款方式: auto_capture / manual
threeDsMode3DS 模式: required / optional / disabled
enabledOneClick是否启用一键支付
shopperReference用户唯一标识 (用于一键支付)
payToken支付令牌 (一键支付时使用)

methodData 示例

明文卡示例:

json
{
  "cardNumber": "4111111111111111",
  "expiryMonth": "12",
  "expiryYear": "27",
  "securityCode": "123",
  "holderName": "Test Visa"
}