Skip to content

创建交易

接口信息

POST /payment/{apiKey}/transaction
  • 路径参数apiKey(商户 API Key)
  • 频率限制:60次 / 60秒

支付模式

paymentType说明是否需要 cardInfo
PAY直连信用卡支付
CHECKOUT收银台模式,用户在页面填卡
SUBSCRIPTION订阅扣费(首次)

请求参数

顶层参数

参数名类型长度必填参与签名说明
requestIdString100请求ID,保证幂等性
relationIdString200关联ID,必须唯一
paymentTypeString200PAY / CHECKOUT / SUBSCRIPTION
planIdString200条件必填订阅计划ID(SUBSCRIPTION 时必填)
userIdString200条件必填用户ID(SUBSCRIPTION 时必填)
payAmountString(12,2)支付金额,保留两位小数
currencyString200货币(ISO),如 USD
clientIpString100客户端 IP
returnUrlString500支付成功跳转地址
failedUrlString500支付失败跳转地址
cancelUrlString500支付取消跳转地址
notifyUrlString500回调地址(优先级高于商户配置)
billingAddressStringtext账单地址(JSON 字符串)
shippingAddressStringtext物流地址(JSON 字符串)
cardInfoStringtext条件必填信用卡信息(PAY/SUBSCRIPTION 必填)
itemsStringtext商品信息(JSON 数组字符串)
merchantIdString200商户号
signStringtext签名(本字段不参与签名计算)

cardInfo 字段

PAY 和 SUBSCRIPTION 模式必传,整体序列化为 JSON 字符串后作为 cardInfo 传入

字段类型必填说明
holderNameString持卡人姓名
cardNumberString卡号
monthString月份(两位,如 11
yearString年份(四位,如 2027
cvvString卡背面 CVV

billingAddress / shippingAddress 字段

字段类型必填说明
firstNameString
lastNameString
countryString国家 Code(ISO)
stateString州 Code(ISO)
provinceString区 Code(ISO)
cityString城市
streetString街道
addressString详细地址
postalCodeString邮编
phoneString电话
emailString邮箱
countryNameString国家名称
provinceNameString区名称
numberString门牌号
areaCodeString区号
birthDateString生日(yyyy/MM/dd
identityNumberString证件号码

items 字段(数组)

字段类型必填说明
nameString商品名称(不含特殊字符、表情、中文)
priceStringSKU 价格
numStringSKU 数量
currencyString货币
skuStringSKU 名称
urlStringSKU 链接
categoryString类目信息

响应参数

字段类型说明
data.transactionOrderIdString交易订单 ID
data.relationIdString关联 ID
data.subscriptionIdString订阅 ID(仅订阅支付返回)
data.subscriptionCodeString订阅编号(仅订阅支付返回)
data.statusString订单状态,见状态码说明
data.payAmountString支付金额
data.currencyString货币
data.txnAmountString结算金额
data.txnCurrencyString结算货币
data.urlString需跳转时的 URL(3DS 验证/收银台)
data.createTimeString创建时间
data.txnTimeString结算时间
data.merchantIdString商户号

请求示例

json
{
  "requestId": "REQ_20241021_001",
  "relationId": "39d9663d889929d962dd8999",
  "paymentType": "PAY",
  "merchantId": "888888888",
  "payAmount": "299",
  "currency": "USD",
  "clientIp": "153.12.187.15",
  "returnUrl": "https://www.yoursite.com/success",
  "failedUrl": "https://www.yoursite.com/failed",
  "cancelUrl": "https://www.yoursite.com/cancel",
  "notifyUrl": "https://www.yoursite.com/webhook/payment",
  "billingAddress": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"country\":\"US\",\"state\":\"CA\",\"city\":\"Los Angeles\",\"address\":\"123 Main St\",\"postalCode\":\"90001\",\"phone\":\"+12345678901\",\"email\":\"[email protected]\"}",
  "shippingAddress": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"country\":\"US\",\"state\":\"CA\",\"city\":\"Los Angeles\",\"address\":\"123 Main St\",\"postalCode\":\"90001\",\"phone\":\"+12345678901\",\"email\":\"[email protected]\"}",
  "cardInfo": "{\"holderName\":\"John Doe\",\"cardNumber\":\"4000000000000000\",\"month\":\"11\",\"year\":\"2027\",\"cvv\":\"123\"}",
  "items": "[{\"name\":\"Product Name\",\"price\":\"299\",\"num\":\"1\",\"currency\":\"USD\",\"sku\":\"SKU_001\",\"url\":\"https://yoursite.com/product/001\"}]",
  "sign": "5097d223b249d4512a6103ce06568f2ddbfff8716c14c8465be1e543b842dc4e"
}

响应示例

json
{
  "rtn_code": "0000",
  "success": true,
  "data": {
    "transactionOrderId": "300068705107664897",
    "relationId": "39d9663d889929d962dd8999",
    "status": "100000",
    "payAmount": "299",
    "currency": "USD",
    "merchantId": "888888888",
    "createTime": "2024-05-27 10:43:18"
  }
}
json
{
  "rtn_code": "0000",
  "success": true,
  "data": {
    "transactionOrderId": "300068705107664897",
    "relationId": "39d9663d889929d962dd8999",
    "status": "100040",
    "payAmount": "299",
    "currency": "USD",
    "merchantId": "888888888",
    "createTime": "2024-05-27 10:43:18",
    "url": "https://testthreeds.codrimpay.com/threeds2.html?tradeCode=T300068704444964864"
  }
}

NOTE

status=100040 时,需要引导用户跳转到 data.url 完成 3DS 验证。 支付最终结果以 Webhook 回调为准,status=100000 只代表渠道接受了请求。

接口别名

POST /v1/{apiKey}/transaction

与主路径功能完全等价,使用相同的签名验证逻辑。

Codrimpay