NAV Navigation
Go JavaScript Java Python PHP Ruby

Online Payment Gateway V:20250508

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Visa & Mastercard支付服务商

Base URLs:

License: Global

Authentication

Access Token

Request an access token

Request an access token

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/connect/token", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "appId": "string",
  "secret": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/connect/token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/connect/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/connect/token', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/connect/token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/connect/token',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/connect/token

创建token开始使用我们的Api

Body parameter

{
  "appId": "string",
  "secret": "string"
}

Parameters

Name In Type Required Description
body body AccessToken false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [AccessToken Response](#schemaaccesstoken response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Checkout Session

Checkout Sessions

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/cashier/order", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "amount": "100.99",
  "captureMethod": "auto",
  "currency": "USD",
  "description": "string",
  "expiryTime": "14400",
  "fraudMode": "N",
  "frontUrl": "https://www.acqra.com",
  "linkMode": "session",
  "orderNo": "20220828000002",
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "threeDsMode": "no、auto、standard"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/cashier/order',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/cashier/order");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/cashier/order', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/cashier/order', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/cashier/order',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/cashier/order

收银台预下单

Body parameter

{
  "amount": "100.99",
  "captureMethod": "auto",
  "currency": "USD",
  "description": "string",
  "expiryTime": "14400",
  "fraudMode": "N",
  "frontUrl": "https://www.acqra.com",
  "linkMode": "session",
  "orderNo": "20220828000002",
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "threeDsMode": "no、auto、standard"
}
Name In Type Required Description
body body CashierPaymentOrder false none

Example responses

200 Response

Status Meaning Description Schema
200 OK OK CashierPreOrderResp
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Payment Intents

Request a payment

Void a payment

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "orderNo": "string",
  "tradeNo": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/cancel',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/cancel', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/cancel', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/cancel',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/cancel

如果不再需要付款,可以在捕获之前取消授权

Body parameter

{
  "orderNo": "string",
  "tradeNo": "string"
}

Parameters

Name In Type Required Description
body body Void false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Void Response](#schemavoid response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Capture a payment

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/capture", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "captureAmount": "100.55",
  "orderNo": "202308161615130001",
  "tradeNo": "202308161615130001"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/capture',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/capture");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/capture', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/capture', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/capture',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/capture

捕获capture

Body parameter

{
  "captureAmount": "100.55",
  "orderNo": "202308161615130001",
  "tradeNo": "202308161615130001"
}

Parameters

Name In Type Required Description
body body Capture false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Capture Response](#schemacapture response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Request a payment

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/payment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "alipay": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "alipayPlus": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "amount": "199.68",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "billingDesc": "string",
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryTime": "60",
  "fraudMode": "Y",
  "frontUrl": "https://www.xxx.com?tradeNo=xxx&orderNo=xxx&status=订单状态&language=en-US&amount=金额",
  "grabPay": {
    "productType": "qr-code"
  },
  "orderNo": "20220828000002",
  "payNow": {
    "productType": "qr-code"
  },
  "paymentMethodType": "card、payNow、paypal、wechat、upay、alipay、alipayPlus、shopeePay、applePay、googlePay",
  "paypal": {
    "metadata": "key-value",
    "productType": "qr-code"
  },
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "shopeePay": {
    "productType": "qr-code"
  },
  "threeDsData": {
    "cavv": "a772a34d-d58a-4896-bf22-40b2af96eabd",
    "dsTransId": "020100006afa60729412446b96732f98b3ee98a2",
    "dsVersion": "2.1.0",
    "eci": "05",
    "xid": "05"
  },
  "threeDsMode": "no、auto、standard",
  "upay": {
    "authCode": "120061098828009406",
    "productType": "qr-code",
    "storeId": "P000001"
  },
  "wechat": {
    "attach": "调用者自定义数据",
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code、pay、in-app、mini-program、h5",
    "storeId": "P000001",
    "subAppId": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/payment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/payment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/payment', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/payment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/payment',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/payment

使用任何可用的付款方式创建新付款

Body parameter

{
  "alipay": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "alipayPlus": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "amount": "199.68",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "billingDesc": "string",
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryTime": "60",
  "fraudMode": "Y",
  "frontUrl": "https://www.xxx.com?tradeNo=xxx&orderNo=xxx&status=订单状态&language=en-US&amount=金额",
  "grabPay": {
    "productType": "qr-code"
  },
  "orderNo": "20220828000002",
  "payNow": {
    "productType": "qr-code"
  },
  "paymentMethodType": "card、payNow、paypal、wechat、upay、alipay、alipayPlus、shopeePay、applePay、googlePay",
  "paypal": {
    "metadata": "key-value",
    "productType": "qr-code"
  },
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "shopeePay": {
    "productType": "qr-code"
  },
  "threeDsData": {
    "cavv": "a772a34d-d58a-4896-bf22-40b2af96eabd",
    "dsTransId": "020100006afa60729412446b96732f98b3ee98a2",
    "dsVersion": "2.1.0",
    "eci": "05",
    "xid": "05"
  },
  "threeDsMode": "no、auto、standard",
  "upay": {
    "authCode": "120061098828009406",
    "productType": "qr-code",
    "storeId": "P000001"
  },
  "wechat": {
    "attach": "调用者自定义数据",
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code、pay、in-app、mini-program、h5",
    "storeId": "P000001",
    "subAppId": "string"
  }
}

Parameters

Name In Type Required Description
body body Payment false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Payment Response](#schemapayment response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

MIT Payment 限制类接口

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/mitPayment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "amount": "100.99",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "orderNo": "20220828000002"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/mitPayment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/mitPayment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/mitPayment', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/mitPayment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/mitPayment',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/mitPayment

MIT Payment

Body parameter

{
  "amount": "100.99",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "orderNo": "20220828000002"
}

Parameters

Name In Type Required Description
body body MitPayment false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [SubscriptionPayment Response](#schemasubscriptionpayment response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

SubscriptionPayment

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/subscriptionPayment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "amount": "100.99",
  "cardNo": "4444333322221111",
  "customerInitiatedReason": "RECURRING",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryMonth": "12",
  "expiryYear": "2027",
  "orderNo": "20220828000002",
  "threeDsMode": "no、auto、standard",
  "transactionIdentifier": "000000000000020005060720116005061"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/subscriptionPayment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/subscriptionPayment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/subscriptionPayment', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/subscriptionPayment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/subscriptionPayment',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/subscriptionPayment

订阅支付,基于首次支付获取到的token,定时扣款指令

Body parameter

{
  "amount": "100.99",
  "cardNo": "4444333322221111",
  "customerInitiatedReason": "RECURRING",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryMonth": "12",
  "expiryYear": "2027",
  "orderNo": "20220828000002",
  "threeDsMode": "no、auto、standard",
  "transactionIdentifier": "000000000000020005060720116005061"
}

Parameters

Name In Type Required Description
body body SubscriptionPayment false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [SubscriptionPayment Response](#schemasubscriptionpayment response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Query

Order Query

Get Payment details

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/query", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "orderNo": "202308161615130001",
  "paymentMethodType": "card、payNow、wechat、upi、upay、alipay、alipayPlus、payNow、shopeePay",
  "tradeNo": "202308161615130001"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/query',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/query");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/query', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/query', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/query',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/query

inquiry Requests

Body parameter

{
  "orderNo": "202308161615130001",
  "paymentMethodType": "card、payNow、wechat、upi、upay、alipay、alipayPlus、payNow、shopeePay",
  "tradeNo": "202308161615130001"
}

Parameters

Name In Type Required Description
body body Query false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Query Response](#schemaquery response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Get refund details

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/refundQuery", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "orderNo": "202308161615130001",
  "paymentMethodType": "card、payNow、wechat、upi、upay、alipay、alipayPlus、payNow、shopeePay",
  "tradeNo": "202308161615130001"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/refundQuery',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/refundQuery");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/refundQuery', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/refundQuery', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/refundQuery',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/refundQuery

inquiry Requests

Body parameter

{
  "orderNo": "202308161615130001",
  "paymentMethodType": "card、payNow、wechat、upi、upay、alipay、alipayPlus、payNow、shopeePay",
  "tradeNo": "202308161615130001"
}

Parameters

Name In Type Required Description
body body Query false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Refund Response](#schemarefund response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Refunds

Refund a payment

Refund a payment

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/refund", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "amount": "100.99",
  "clientIp": "10.1.1.1",
  "orderNo": "string",
  "reason": "商品与描述不符,申请退款",
  "refundNumber": "202208280000001",
  "tradeNo": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/refund',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/refund");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/refund', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/refund', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/refund',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/refund

申请退款,退款请求是异步处理,如果退款成功,您可以通过订阅webhook来接收通知结果,资金将原路退回到您的信用卡或借记卡

Body parameter

{
  "amount": "100.99",
  "clientIp": "10.1.1.1",
  "orderNo": "string",
  "reason": "商品与描述不符,申请退款",
  "refundNumber": "202208280000001",
  "tradeNo": "string"
}

Parameters

Name In Type Required Description
body body Refund false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Refund Response](#schemarefund response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Tracking

Tracking Manage

获取物流信息详情

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/shipping/retrieve", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/shipping/retrieve',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/shipping/retrieve");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/shipping/retrieve', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/shipping/retrieve', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/shipping/retrieve',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/shipping/retrieve

Retrieve Tracking Details

Body parameter

{
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}

Parameters

Name In Type Required Description
body body [Retrieves Tracking](#schemaretrieves tracking) false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [Tracking Details Response](#schematracking details response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

单笔添加订单的物流信息

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/shipping/tracking", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "carrier": "2EBOX",
  "orderNo": "202308161615130001",
  "shipmentDate": "2025-06-09",
  "shipmentDirection": "FORWARD",
  "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
  "trackingNo": "202208290000001",
  "trackingNumberType": "CARRIER_PROVIDED",
  "trackingUrl": "https://t.17track.net/en#nums=76708433717662"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/shipping/tracking',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/shipping/tracking");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/shipping/tracking', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/shipping/tracking', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/shipping/tracking',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/shipping/tracking

Adds tracking information for an Order.

Body parameter

{
  "carrier": "2EBOX",
  "orderNo": "202308161615130001",
  "shipmentDate": "2025-06-09",
  "shipmentDirection": "FORWARD",
  "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
  "trackingNo": "202208290000001",
  "trackingNumberType": "CARRIER_PROVIDED",
  "trackingUrl": "https://t.17track.net/en#nums=76708433717662"
}

Parameters

Name In Type Required Description
body body Tracking false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [TrackingRsp Response](#schematrackingrsp response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

批量添加订单的物流信息

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '[
  {
    "carrier": "2EBOX",
    "orderNo": "202308161615130001",
    "shipmentDate": "2025-06-09",
    "shipmentDirection": "FORWARD",
    "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
    "trackingNo": "202208290000001",
    "trackingNumberType": "CARRIER_PROVIDED",
    "trackingUrl": "https://t.17track.net/en#nums=76708433717662"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/shipping/tracking-batch',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/shipping/tracking-batch

Add tracking information for multiple for Order.

Body parameter

[
  {
    "carrier": "2EBOX",
    "orderNo": "202308161615130001",
    "shipmentDate": "2025-06-09",
    "shipmentDirection": "FORWARD",
    "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
    "trackingNo": "202208290000001",
    "trackingNumberType": "CARRIER_PROVIDED",
    "trackingUrl": "https://t.17track.net/en#nums=76708433717662"
  }
]

Parameters

Name In Type Required Description
body body Tracking false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [TrackingRsp Response](#schematrackingrsp response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

修改或取消物流信息

Code samples

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

const inputBody = '{
  "iterms": [
    {
      "op": "replace",
      "path": "/status",
      "value": "CANCELLED"
    }
  ],
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'
};

fetch('http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'API_KEY'
}

r = requests.post('http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify', headers = headers)

print(r.json())

 'application/json',
    'Accept' => '*/*',
    'Authorization' => 'API_KEY',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'API_KEY'
}

result = RestClient.post 'http://172.19.100.136:8098/gateway/v1/shipping/tracking-modify',
  params: {
  }, headers: headers

p JSON.parse(result)

POST /gateway/v1/shipping/tracking-modify

Updates or cancels the tracking information for a order

Body parameter

{
  "iterms": [
    {
      "op": "replace",
      "path": "/status",
      "value": "CANCELLED"
    }
  ],
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}

Parameters

Name In Type Required Description
body body [Update or cancel tracking information](#schemaupdate or cancel tracking information) false none

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK [TrackingRsp Response](#schematrackingrsp response)
201 Created Created None
401 Unauthorized Unauthorized None
403 Forbidden Forbidden None
404 Not Found Not Found None

Schemas

AccessToken

{
  "appId": "string",
  "secret": "string"
}

AccessToken

Properties

Name Type Required Restrictions Description
appId string true none 平台分配应用id参数
secret string true none 平台分配接入秘钥

AccessToken Response

{
  "accessToken": "凭证串",
  "expiresIn": 3600,
  "respCode": "0000",
  "respMsg": "详细的错误描述"
}

AccessToken Response

Properties

Name Type Required Restrictions Description
accessToken string false none 凭证
expiresIn integer(int32) false none 有效期
respCode string true none 应答码
respMsg string true none 应答描述

Address

{
  "city": "Seattle",
  "country": "HK",
  "line1": "为避免交易失败,中文地址建议翻译为英文地址",
  "line2": "line2",
  "line3": "line3",
  "postcode": "98102",
  "state": "WA"
}

Address

Properties

Name Type Required Restrictions Description
city string true none city string <= 50 characters
country string true none 国家代码。ISO 3166-1 alpha-2 代码大写
line1 string true none line1 string <= 128 characters
line2 string false none line2 string <= 128 characters
line3 string false none line3 string <= 128 characters
postcode string true none postcode string <= 50 characters
state string true none state string <= 50 characters

Alipay

{
  "authCode": "120061098828009406",
  "limitPayMethod": "no_credit",
  "openId": "string",
  "productType": "qr-code",
  "storeId": "P000001",
  "subAppId": "string"
}

Alipay

Properties

Name Type Required Restrictions Description
authCode string false none 微信支付授权码string[1, 64]
limitPayMethod string false none 限制支付方式string[1, 32]
openId string false none 微信openId[1, 64]
productType string true none product type
storeId string false none 门店编号string[1, 30]
subAppId string false none 微信子appId[1, 64]

AlipayPlus

{
  "authCode": "120061098828009406",
  "limitPayMethod": "no_credit",
  "openId": "string",
  "productType": "qr-code",
  "storeId": "P000001",
  "subAppId": "string"
}

AlipayPlus

Properties

Name Type Required Restrictions Description
authCode string false none 微信支付授权码string[1, 64]
limitPayMethod string false none 限制支付方式string[1, 32]
openId string false none 微信openId[1, 64]
productType string true none 产品编码
storeId string false none 门店编号string[1, 30]
subAppId string false none 微信子appId[1, 64]

Billing

{
  "address": {
    "city": "Seattle",
    "country": "HK",
    "line1": "为避免交易失败,中文地址建议翻译为英文地址",
    "line2": "line2",
    "line3": "line3",
    "postcode": "98102",
    "state": "WA"
  },
  "birthday": "2022-08-01",
  "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
  "email": "diaodiaofly@gmail.com",
  "phone": {
    "countryCode": "852",
    "number": "18510775231"
  },
  "storedcredentials": "none/store,default is none"
}

Billing

Properties

Name Type Required Restrictions Description
address Address true none 地址信息
birthday string false none 生日[yyyy-MM-dd]
customerInitiatedReason string false none 定期支付原因
email string false none 邮箱 string [3..255]
phone Phone false none The phone number associated with the billing address
storedcredentials string false none 交易之间以固定的、定期的间隔处理标识

Browser

{
  "acceptHeader": "text/html",
  "colorDepth": "48",
  "javaEnable": false,
  "javascriptEnable": true,
  "screenHeight": "800",
  "screenWidth": "1200",
  "sessionId": "0",
  "timeZone": "0",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
}

Browser

Properties

Name Type Required Restrictions Description
acceptHeader string false none 指纹标识
colorDepth string false none 色彩深度
javaEnable boolean false none 是否启用java
javascriptEnable boolean false none 是否启用javascript
screenHeight string false none 浏览器高度
screenWidth string false none 浏览器宽度
sessionId string false none 购买者会话id
timeZone string false none 时区
userAgent string true none userAgent

Capture

{
  "captureAmount": "100.55",
  "orderNo": "202308161615130001",
  "tradeNo": "202308161615130001"
}

Capture

Properties

Name Type Required Restrictions Description
captureAmount string true none 捕获金额
orderNo string false none 商户订单编号(orderNo和tradeNo二选一)
tradeNo string false none authorized交易流水号 (orderNo和tradeNo二选一)

Capture Response

{
  "amount": "100.99",
  "currency": "USD",
  "lastEvent": "string",
  "orderNo": "20220828000002",
  "orderStatus": "successed",
  "respCode": "0000",
  "respMsg": "描述",
  "tradeNo": "589327510105956352",
  "transactionTime": "string"
}

Capture Response

Properties

Name Type Required Restrictions Description
amount string true none 金额
currency string true none 币种
lastEvent string false none none
orderNo string true none 订单编号
orderStatus string false none 订单状态
respCode string false none 响应码
respMsg string false none 响应描述
tradeNo string true none 平台订单号
transactionTime string false none none

Card

{
  "captureMethod": "auto",
  "cardNo": "6212454545454690",
  "cvc": "401",
  "expiryMonth": "06",
  "expiryYear": "2027",
  "firstName": "四",
  "lastName": "李"
}

Card

Properties

Name Type Required Restrictions Description
captureMethod string false none 是否自动capture[auto、manual],default:auto
cardNo string true none cardNo [M,max13~max19]
cvc string false none 信用卡安全码
expiryMonth string true none 卡到期月份的两位数字
expiryYear string true none 卡到期年份的四位数字
firstName string true none 名字
lastName string true none 姓氏

CashierPaymentOrder

{
  "amount": "100.99",
  "captureMethod": "auto",
  "currency": "USD",
  "description": "string",
  "expiryTime": "14400",
  "fraudMode": "N",
  "frontUrl": "https://www.acqra.com",
  "linkMode": "session",
  "orderNo": "20220828000002",
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "threeDsMode": "no、auto、standard"
}

CashierPaymentOrder

Properties

Name Type Required Restrictions Description
amount string true none 金额>=0.01
captureMethod string false none 是否自动capture[auto、manual],default:auto
currency string true none 币种 [3位]
description string false none 附言
expiryTime string false none 失效时间(整数分钟)
fraudMode string false none 欺诈检测 enum:Y、N
frontUrl string false none 重定向地址 [3-128位]
linkMode string false none 收银台模式-开通对应产品请联系运营人员
orderNo string true none 订单编号 [5-64位]
productInfo [ProductInfo] false none 商品信息
shipping Shipping false none 收货地址信息
threeDsMode string false none 3ds模式取值范围[no、auto、standard]

CashierPreOrderResp

{
  "expiresIn": 1440,
  "orderNo": "20220828000002",
  "redirectUrl": "/h5/zh-cn/cashier.html",
  "respCode": "0000",
  "respMsg": "描述"
}

CashierPreOrderResp

Properties

Name Type Required Restrictions Description
expiresIn integer(int32) false none 分钟
orderNo string true none 订单编号
redirectUrl string true none 重定向地址
respCode string false none 响应码
respMsg string false none 响应描述

Ddc

{
  "bin": "string",
  "challenged": "string",
  "ddcAction": "string",
  "jwt": "string"
}

Ddc

Properties

Name Type Required Restrictions Description
bin string false none none
challenged string false none none
ddcAction string false none ddc请求地址
jwt string false none none

DeviceInfo

{
  "browser": {
    "acceptHeader": "text/html",
    "colorDepth": "48",
    "javaEnable": false,
    "javascriptEnable": true,
    "screenHeight": "800",
    "screenWidth": "1200",
    "sessionId": "0",
    "timeZone": "0",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
  },
  "clientIp": "10.1.1.1",
  "deviceId": "10000000000",
  "language": "en-US/zh-CN",
  "location": {
    "lat": "-37.81892",
    "lon": "144.95913"
  },
  "mobile": {
    "deviceModel": "apple iphone7",
    "osType": "IOS",
    "osVersion": "ios14.5"
  }
}

DeviceInfo

Properties

Name Type Required Restrictions Description
browser Browser true none 浏览器端信息
clientIp string true none 用户的IP地址,预防欺诈所必需的,支持ipv4、ipv6
deviceId string false none 设备id
language string true none 语言
location Location false none 经纬度信息
mobile Mobile false none 手机操作终端信息

GrabPay

{
  "productType": "qr-code"
}

GrabPay

Properties

Name Type Required Restrictions Description
productType string true none product type

Location

{
  "lat": "-37.81892",
  "lon": "144.95913"
}

Location

Properties

Name Type Required Restrictions Description
lat string false none 纬度
lon string false none 经度

MitPayment

{
  "amount": "100.99",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "orderNo": "20220828000002"
}

MitPayment

Properties

Name Type Required Restrictions Description
amount string true none 金额 [M,100.58]
billing Billing true none 账单信息
card Card true none 银行卡交易信息
currency string true none 三字母ISO-4217货币代码,大写
description string false none 附言 string[O 1..50]
deviceInfo DeviceInfo false none 客户端扩展信息
orderNo string true none 订单编号 [O,min5~max64]

Mobile

{
  "deviceModel": "apple iphone7",
  "osType": "IOS",
  "osVersion": "ios14.5"
}

Mobile

Properties

Name Type Required Restrictions Description
deviceModel string false none 设备
osType string false none 系统类型
osVersion string false none 系统版本

OrderCardApiModel

{
  "arn": "string",
  "authorizeCode": "string",
  "avsResult": "string",
  "bin": "string",
  "cardClass": "string",
  "cvcResult": "string",
  "dsInfo": {
    "authenticationStatus": "string",
    "cavvAlgorithm": "string",
    "eci": "string",
    "enrolled": "string",
    "signatureVerification": "string",
    "threeDsVersion": "string"
  },
  "issuerCountryCode": "string",
  "riskScore": "string"
}

OrderCardApiModel

Properties

Name Type Required Restrictions Description
arn string false none none
authorizeCode string false none none
avsResult string false none none
bin string false none none
cardClass string false none none
cvcResult string false none none
dsInfo ThreeDsInfoDTO false none none
issuerCountryCode string false none none
riskScore string false none none

OrderInfoModel

{
  "billingDesc": "string",
  "brand": "string",
  "clientIp": "string",
  "mcc": "string",
  "mercName": "string",
  "orderNo": "string",
  "orderStatus": "string",
  "orderStatusDesc": "string",
  "payAmount": 0,
  "payName": "string",
  "payNo": "string",
  "payTime": "2019-08-24T14:15:22Z",
  "paymentMethodType": "string",
  "tradeComments": "string",
  "tradeCurrency": "string",
  "tradeFinishTime": "2019-08-24T14:15:22Z",
  "tradeNo": "string",
  "websiteId": "string"
}

OrderInfoModel

Properties

Name Type Required Restrictions Description
billingDesc string false none none
brand string false none none
clientIp string false none none
mcc string false none none
mercName string false none none
orderNo string false none none
orderStatus string false none none
orderStatusDesc string false none none
payAmount number(bigdecimal) false none none
payName string false none none
payNo string false none none
payTime string(date-time) false none none
paymentMethodType string false none none
tradeComments string false none none
tradeCurrency string false none none
tradeFinishTime string(date-time) false none none
tradeNo string false none none
websiteId string false none none

PayNow

{
  "productType": "qr-code"
}

PayNow

Properties

Name Type Required Restrictions Description
productType string true none product type

PayPal

{
  "metadata": "key-value",
  "productType": "qr-code"
}

PayPal

Properties

Name Type Required Restrictions Description
metadata object false none 元数据
» additionalProperties string false none none
productType string true none 产品编码

Payment

{
  "alipay": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "alipayPlus": {
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code",
    "storeId": "P000001",
    "subAppId": "string"
  },
  "amount": "199.68",
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "billingDesc": "string",
  "card": {
    "captureMethod": "auto",
    "cardNo": "6212454545454690",
    "cvc": "401",
    "expiryMonth": "06",
    "expiryYear": "2027",
    "firstName": "四",
    "lastName": "李"
  },
  "currency": "USD",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryTime": "60",
  "fraudMode": "Y",
  "frontUrl": "https://www.xxx.com?tradeNo=xxx&orderNo=xxx&status=订单状态&language=en-US&amount=金额",
  "grabPay": {
    "productType": "qr-code"
  },
  "orderNo": "20220828000002",
  "payNow": {
    "productType": "qr-code"
  },
  "paymentMethodType": "card、payNow、paypal、wechat、upay、alipay、alipayPlus、shopeePay、applePay、googlePay",
  "paypal": {
    "metadata": "key-value",
    "productType": "qr-code"
  },
  "productInfo": [
    {
      "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
      "price": "5.55",
      "productName": "可比克薯片",
      "quantity": "1",
      "sku": "00000000000001",
      "url": "https://item.jd.com/100038004351.html?bbtf=1"
    }
  ],
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  },
  "shopeePay": {
    "productType": "qr-code"
  },
  "threeDsData": {
    "cavv": "a772a34d-d58a-4896-bf22-40b2af96eabd",
    "dsTransId": "020100006afa60729412446b96732f98b3ee98a2",
    "dsVersion": "2.1.0",
    "eci": "05",
    "xid": "05"
  },
  "threeDsMode": "no、auto、standard",
  "upay": {
    "authCode": "120061098828009406",
    "productType": "qr-code",
    "storeId": "P000001"
  },
  "wechat": {
    "attach": "调用者自定义数据",
    "authCode": "120061098828009406",
    "limitPayMethod": "no_credit",
    "openId": "string",
    "productType": "qr-code、pay、in-app、mini-program、h5",
    "storeId": "P000001",
    "subAppId": "string"
  }
}

Payment

Properties

Name Type Required Restrictions Description
alipay Alipay false none 支付宝
alipayPlus AlipayPlus false none AlipayPlus
amount string true none 交易金额,长度7,2
billing Billing false none 账单信息
billingDesc string false none 账单描述符,如需自定义上送请联系业务经理开通 string[1..18]
card Card false none 银行卡交易信息
currency string true none 三字母ISO-4217货币代码,大写
description string false none 附言 string[1..50]
deviceInfo DeviceInfo true none 客户端环境信息
expiryTime string false none none
fraudMode string false none 欺诈检测 enum:Y、N
frontUrl string false none 重定向地址不允许携带参数 string[3..128]
grabPay GrabPay false none GrabPay
orderNo string true none 订单编号 string[5..64]
payNow PayNow false none payNow
paymentMethodType string true none Payment methodType[1, 20]
paypal PayPal false none paypal
productInfo [ProductInfo] false none 商品信息
shipping Shipping false none 收货信息
shopeePay ShopeePay false none ShopeePay
threeDsData ThreeDsData false none 3ds认证结果信息
threeDsMode string false none 3ds模式取值范围,有疑问请联系业务经理[no、auto、standard]
upay Upay false none 银联二维码
wechat Wechat false none 微信支付交易信息

Payment Response

{
  "amount": "100.99",
  "authorizeCode": "920345",
  "currency": "USD",
  "ddc": {
    "bin": "string",
    "challenged": "string",
    "ddcAction": "string",
    "jwt": "string"
  },
  "desc": "string",
  "lastEvent": "下一步引导操作",
  "orderNo": "20220828000002",
  "orderStatus": "authorized",
  "payUrl": "string",
  "respCode": "0000",
  "respMsg": "描述",
  "tradeNo": "589327510105956352",
  "transactionIdentifier": "000000000000020005060720116005061",
  "transactionTime": "yyyy-MM-dd'T'HH:mm:ssXXX"
}

Payment Response

Properties

Name Type Required Restrictions Description
amount string true none 金额
authorizeCode string false none 授权码
currency string true none 币种
ddc Ddc false none ddc jwt参数信息
desc string false none 描述信息
lastEvent string false none 事件引导地址
orderNo string true none 订单编号
orderStatus string false none 订单状态
payUrl string false none 重定向支付链接
respCode string false none 响应码
respMsg string false none 响应描述
tradeNo string true none 平台订单号
transactionIdentifier string false none 定期支付凭证串
transactionTime string false none 交易时间

Phone

{
  "countryCode": "852",
  "number": "18510775231"
}

Phone

Properties

Name Type Required Restrictions Description
countryCode string false none 国家/地区呼叫代码 String[1..7]
number string false none 持卡人电话 String[1..26]

ProductInfo

{
  "imageUrl": "https://item.jd.com/100038004351.html?bbtf=1",
  "price": "5.55",
  "productName": "可比克薯片",
  "quantity": "1",
  "sku": "00000000000001",
  "url": "https://item.jd.com/100038004351.html?bbtf=1"
}

ProductInfo

Properties

Name Type Required Restrictions Description
imageUrl string false none 商品主图url [1...512]
price string true none 商品单价
productName string true none 商品名称string [1...512]
quantity string true none 商品数量
sku string true none 商品编号
url string false none 商品在线访问url地址 [1...512]

Query

{
  "orderNo": "202308161615130001",
  "paymentMethodType": "card、payNow、wechat、upi、upay、alipay、alipayPlus、payNow、shopeePay",
  "tradeNo": "202308161615130001"
}

Query

Properties

Name Type Required Restrictions Description
orderNo string false none 订单编号/平台流水号任意上送其中一个即可
paymentMethodType string true none 支付方式枚举值(M)
tradeNo string false none 平台流水号/订单编号任意上送其中一个即可

Query Response

{
  "billing": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "birthday": "2022-08-01",
    "customerInitiatedReason": "RECURRING/INSTALMENT/UNSCHEDULED",
    "email": "diaodiaofly@gmail.com",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "storedcredentials": "none/store,default is none"
  },
  "extend": {
    "arn": "string",
    "authorizeCode": "string",
    "avsResult": "string",
    "bin": "string",
    "cardClass": "string",
    "cvcResult": "string",
    "dsInfo": {
      "authenticationStatus": "string",
      "cavvAlgorithm": "string",
      "eci": "string",
      "enrolled": "string",
      "signatureVerification": "string",
      "threeDsVersion": "string"
    },
    "issuerCountryCode": "string",
    "riskScore": "string"
  },
  "order": {
    "billingDesc": "string",
    "brand": "string",
    "clientIp": "string",
    "mcc": "string",
    "mercName": "string",
    "orderNo": "string",
    "orderStatus": "string",
    "orderStatusDesc": "string",
    "payAmount": 0,
    "payName": "string",
    "payNo": "string",
    "payTime": "2019-08-24T14:15:22Z",
    "paymentMethodType": "string",
    "tradeComments": "string",
    "tradeCurrency": "string",
    "tradeFinishTime": "2019-08-24T14:15:22Z",
    "tradeNo": "string",
    "websiteId": "string"
  },
  "refund": [
    {
      "amount": 0,
      "completeTime": "string",
      "currency": "string",
      "desc": "string",
      "orderNo": "string",
      "refundStatus": "string",
      "refundTime": "2019-08-24T14:15:22Z",
      "tradeNo": "string"
    }
  ],
  "respCode": "0000",
  "respMsg": "描述",
  "shipping": {
    "address": {
      "city": "Seattle",
      "country": "HK",
      "line1": "为避免交易失败,中文地址建议翻译为英文地址",
      "line2": "line2",
      "line3": "line3",
      "postcode": "98102",
      "state": "WA"
    },
    "carrier": "Fedex",
    "email": "diaodiaofly@gmail.com",
    "firstName": "四",
    "lastName": "李",
    "phone": {
      "countryCode": "852",
      "number": "18510775231"
    },
    "trackingNo": "202208290000001"
  }
}

Query Response

Properties

Name Type Required Restrictions Description
billing Billing false none 账单信息
extend OrderCardApiModel false none none
order OrderInfoModel false none none
refund [RefundLogModel] false none none
respCode string false none 响应码
respMsg string false none 响应描述
shipping Shipping false none 收货信息

Refund

{
  "amount": "100.99",
  "clientIp": "10.1.1.1",
  "orderNo": "string",
  "reason": "商品与描述不符,申请退款",
  "refundNumber": "202208280000001",
  "tradeNo": "string"
}

Refund

Properties

Name Type Required Restrictions Description
amount string true none 金额
clientIp string true none 申请人请求ip
orderNo string false none 原消费订单号
reason string true none 退款原因
refundNumber string true none 申请退款流水号(Mid下唯一)
tradeNo string false none 原消费订单平台流水号

Refund Response

{
  "amount": "100.99",
  "currency": "USD",
  "desc": "string",
  "finishTime": "yyyy-MM-dd HH:mm:ss",
  "mercId": "10000000000000",
  "refundOrderNo": "202208280000001",
  "refundStatus": "accepted",
  "refundTradeNo": "20220828000002",
  "respCode": "0000",
  "respMsg": "详细的错误描述"
}

Refund Response

Properties

Name Type Required Restrictions Description
amount string true none 金额
currency string true none 币种
desc string false none 描述信息
finishTime string false none 退款完成时间
mercId string true none 商户编号
refundOrderNo string true none 退款申请订单编号
refundStatus string true none 退款状态
refundTradeNo string true none 退款申请平台订单号
respCode string true none 应答码
respMsg string true none 应答描述

RefundLogModel

{
  "amount": 0,
  "completeTime": "string",
  "currency": "string",
  "desc": "string",
  "orderNo": "string",
  "refundStatus": "string",
  "refundTime": "2019-08-24T14:15:22Z",
  "tradeNo": "string"
}

RefundLogModel

Properties

Name Type Required Restrictions Description
amount number(bigdecimal) false none none
completeTime string false none none
currency string false none none
desc string false none none
orderNo string false none none
refundStatus string false none none
refundTime string(date-time) false none none
tradeNo string false none none

Retrieves Tracking

{
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}

Retrieves Tracking

Properties

Name Type Required Restrictions Description
matedata object true none 元数据
» additionalProperties string false none none
orderNo string true none 商户订单编号(orderNo和tradeNo二选一)
trackingNo string true none 快递单号

Shipping

{
  "address": {
    "city": "Seattle",
    "country": "HK",
    "line1": "为避免交易失败,中文地址建议翻译为英文地址",
    "line2": "line2",
    "line3": "line3",
    "postcode": "98102",
    "state": "WA"
  },
  "carrier": "Fedex",
  "email": "diaodiaofly@gmail.com",
  "firstName": "四",
  "lastName": "李",
  "phone": {
    "countryCode": "852",
    "number": "18510775231"
  },
  "trackingNo": "202208290000001"
}

Shipping

Properties

Name Type Required Restrictions Description
address Address true none 地址信息
carrier string false none 快递公司编码
email string false none 邮箱 string [3..255]
firstName string true none The first name of the person receiving the goods or the service string [1..64]
lastName string true none The last name of the person receiving the goods or the service string [1..50]
phone Phone true none The phone number associated with the shipping address
trackingNo string false none 快递单号

ShopeePay

{
  "productType": "qr-code"
}

ShopeePay

Properties

Name Type Required Restrictions Description
productType string true none product type

SubscriptionPayment

{
  "amount": "100.99",
  "cardNo": "4444333322221111",
  "customerInitiatedReason": "RECURRING",
  "description": "string",
  "deviceInfo": {
    "browser": {
      "acceptHeader": "text/html",
      "colorDepth": "48",
      "javaEnable": false,
      "javascriptEnable": true,
      "screenHeight": "800",
      "screenWidth": "1200",
      "sessionId": "0",
      "timeZone": "0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
    },
    "clientIp": "10.1.1.1",
    "deviceId": "10000000000",
    "language": "en-US/zh-CN",
    "location": {
      "lat": "-37.81892",
      "lon": "144.95913"
    },
    "mobile": {
      "deviceModel": "apple iphone7",
      "osType": "IOS",
      "osVersion": "ios14.5"
    }
  },
  "expiryMonth": "12",
  "expiryYear": "2027",
  "orderNo": "20220828000002",
  "threeDsMode": "no、auto、standard",
  "transactionIdentifier": "000000000000020005060720116005061"
}

SubscriptionPayment

Properties

Name Type Required Restrictions Description
amount string true none 金额 [M,100.58]
cardNo string false none card Number [O,min13~max19]
customerInitiatedReason string false none 计划类型:RECURRING/INSTALMENT/UNSCHEDULED
description string false none 附言 string[O 1..50]
deviceInfo DeviceInfo false none 客户端扩展信息
expiryMonth string true none 月份 [O,11]
expiryYear string true none expiry year [O,2026]
orderNo string true none 订单编号 [O,min5~max64]
threeDsMode string false none 3ds模式取值[no、auto、standard]
transactionIdentifier string false none 凭证串 [O,min5~max64]

SubscriptionPayment Response

{
  "amount": "100.99",
  "authorizeCode": "920345",
  "currency": "USD",
  "desc": "string",
  "orderNo": "20220828000002",
  "orderStatus": "successed",
  "respCode": "0000",
  "respMsg": "描述",
  "tradeNo": "589327510105956352",
  "transactionIdentifier": "000000000000020005060720116005061",
  "transactionTime": "string"
}

SubscriptionPayment Response

Properties

Name Type Required Restrictions Description
amount string true none 金额
authorizeCode string false none 授权码
currency string true none 币种
desc string false none 描述信息
orderNo string true none 订单编号
orderStatus string false none 订单状态
respCode string false none 响应码
respMsg string false none 响应描述
tradeNo string true none 平台订单号
transactionIdentifier string false none 定期支付凭证串
transactionTime string false none none

ThreeDsData

{
  "cavv": "a772a34d-d58a-4896-bf22-40b2af96eabd",
  "dsTransId": "020100006afa60729412446b96732f98b3ee98a2",
  "dsVersion": "2.1.0",
  "eci": "05",
  "xid": "05"
}

ThreeDsData

Properties

Name Type Required Restrictions Description
cavv string false none cavv
dsTransId string false none amex交易标识符
dsVersion string true none 3ds版本号
eci string true none eci
xid string true none xid

ThreeDsInfoDTO

{
  "authenticationStatus": "string",
  "cavvAlgorithm": "string",
  "eci": "string",
  "enrolled": "string",
  "signatureVerification": "string",
  "threeDsVersion": "string"
}

ThreeDsInfoDTO

Properties

Name Type Required Restrictions Description
authenticationStatus string false none none
cavvAlgorithm string false none none
eci string false none none
enrolled string false none none
signatureVerification string false none none
threeDsVersion string false none none

Tracking

{
  "carrier": "2EBOX",
  "orderNo": "202308161615130001",
  "shipmentDate": "2025-06-09",
  "shipmentDirection": "FORWARD",
  "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
  "trackingNo": "202208290000001",
  "trackingNumberType": "CARRIER_PROVIDED",
  "trackingUrl": "https://t.17track.net/en#nums=76708433717662"
}

Tracking

Properties

Name Type Required Restrictions Description
carrier string true none 货件的承运人编码
orderNo string true none 商户订单编号(orderNo和tradeNo二选一)
shipmentDate string true none 发货日期
shipmentDirection string true none 表示货件是转发给收件人还是退回
shippingStatus string true none 商品货件的状态
trackingNo string true none 快递单号
trackingNumberType string true none 运单号的类型
trackingUrl string false none 获取的跟踪链接

Tracking Details Response

{
  "carrier": "2EBOX",
  "desc": "描述",
  "orderNo": "202308161615130001",
  "respCode": "0000",
  "respMsg": "描述",
  "shipmentDate": "2025-06-09",
  "shipmentDirection": "FORWARD",
  "shippingStatus": "SHIPPED、CANCELLED、DELIVERED",
  "trackingNo": "202208290000001",
  "trackingNumberType": "CARRIER_PROVIDED",
  "trackingUrl": "string",
  "tradeNo": "202308161615130001"
}

Tracking Details Response

Properties

Name Type Required Restrictions Description
carrier string false none 货件的承运人编码
desc string false none 备注
orderNo string false none 商户订单编号(orderNo和tradeNo二选一)
respCode string false none 响应码
respMsg string false none 响应描述
shipmentDate string true none 发货日期
shipmentDirection string true none 表示货件是转发给收件人还是退回
shippingStatus string true none 商品货件的状态
trackingNo string false none 快递单号
trackingNumberType string true none 运单号的类型
trackingUrl string false none none
tradeNo string false none 交易Reference

TrackingIterm

{
  "op": "replace",
  "path": "/status",
  "value": "CANCELLED"
}

TrackingIterm

Properties

Name Type Required Restrictions Description
op string false none replace、add
path string false none none
value string false none CANCELLED、add

TrackingRsp Response

{
  "desc": "描述",
  "respCode": "0000",
  "respMsg": "描述",
  "trackings": "ids"
}

TrackingRsp Response

Properties

Name Type Required Restrictions Description
desc string false none 备注
respCode string false none 响应码
respMsg string false none 响应描述
trackings [string] false none 受理成功的集合id

Upay

{
  "authCode": "120061098828009406",
  "productType": "qr-code",
  "storeId": "P000001"
}

Upay

Properties

Name Type Required Restrictions Description
authCode string false none 微信支付授权码string[1, 64]
productType string true none product type
storeId string false none 门店编号string[1, 30]

Update or cancel tracking information

{
  "iterms": [
    {
      "op": "replace",
      "path": "/status",
      "value": "CANCELLED"
    }
  ],
  "matedata": "K-V",
  "orderNo": "202308161615130001",
  "trackingNo": "202208290000001"
}

Update or cancel tracking information

Properties

Name Type Required Restrictions Description
iterms [TrackingIterm] true none none
matedata object false none 元数据K-V
» additionalProperties string false none none
orderNo string true none 商户订单编号(orderNo和tradeNo二选一)
trackingNo string true none 快递单号

Void

{
  "orderNo": "string",
  "tradeNo": "string"
}

Void

Properties

Name Type Required Restrictions Description
orderNo string false none 订单编号(orderNo和tradeNo二选一)
tradeNo string false none 平台流水号(orderNo和tradeNo二选一)

Void Response

{
  "lastEvent": "string",
  "orderNo": "20230817123200001",
  "orderStatus": "canceled",
  "respCode": "0000",
  "respMsg": "描述",
  "tradeNo": "20230817123200001",
  "transactionTime": "yyyy-MM-dd'T'HH:mm:ssXXX"
}

Void Response

Properties

Name Type Required Restrictions Description
lastEvent string false none 最后事件
orderNo string false none 订单编号
orderStatus string false none 订单状态
respCode string false none 响应码
respMsg string false none 响应描述
tradeNo string false none 平台订单号
transactionTime string false none 交易时间

Wechat

{
  "attach": "调用者自定义数据",
  "authCode": "120061098828009406",
  "limitPayMethod": "no_credit",
  "openId": "string",
  "productType": "qr-code、pay、in-app、mini-program、h5",
  "storeId": "P000001",
  "subAppId": "string"
}

Wechat

Properties

Name Type Required Restrictions Description
attach string false none 附加数据string[1, 50]
authCode string false none 微信支付授权码string[1, 64]
limitPayMethod string false none 限制支付方式string[1, 32]
openId string false none 微信openId[1, 64]
productType string true none 产品类型[1, 16]
storeId string false none 门店编号string[1, 30]
subAppId string false none 微信子appId[1, 64]