curl --request POST \
--url https://uat-interface.haipay.asia/usd/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 123,
"orderId": "<string>",
"phone": "<string>",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"name": "<string>",
"email": "<string>",
"clientIp": "<string>",
"notifyUrl": "<string>",
"body": "<string>"
}
'import requests
url = "https://uat-interface.haipay.asia/usd/collect/apply"
payload = {
"appId": 123,
"orderId": "<string>",
"phone": "<string>",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"name": "<string>",
"email": "<string>",
"clientIp": "<string>",
"notifyUrl": "<string>",
"body": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 123,
orderId: '<string>',
phone: '<string>',
amount: '<string>',
payType: '<string>',
inBankCode: '<string>',
callBackUrl: '<string>',
callBackFailUrl: '<string>',
subject: '<string>',
partnerUserId: '<string>',
sign: '<string>',
name: '<string>',
email: '<string>',
clientIp: '<string>',
notifyUrl: '<string>',
body: JSON.stringify('<string>')
})
};
fetch('https://uat-interface.haipay.asia/usd/collect/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/usd/collect/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => 123,
'orderId' => '<string>',
'phone' => '<string>',
'amount' => '<string>',
'payType' => '<string>',
'inBankCode' => '<string>',
'callBackUrl' => '<string>',
'callBackFailUrl' => '<string>',
'subject' => '<string>',
'partnerUserId' => '<string>',
'sign' => '<string>',
'name' => '<string>',
'email' => '<string>',
'clientIp' => '<string>',
'notifyUrl' => '<string>',
'body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://uat-interface.haipay.asia/usd/collect/apply"
payload := strings.NewReader("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/usd/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://uat-interface.haipay.asia/usd/collect/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"error": "<string>",
"msg": "<string>",
"data": {
"orderId": "<string>",
"orderNo": "<string>",
"payUrl": "<string>",
"bankCode": "<string>",
"clientToken": "<string>",
"sign": "<string>"
}
}Collection Application
Create collection order
curl --request POST \
--url https://uat-interface.haipay.asia/usd/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 123,
"orderId": "<string>",
"phone": "<string>",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"name": "<string>",
"email": "<string>",
"clientIp": "<string>",
"notifyUrl": "<string>",
"body": "<string>"
}
'import requests
url = "https://uat-interface.haipay.asia/usd/collect/apply"
payload = {
"appId": 123,
"orderId": "<string>",
"phone": "<string>",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"name": "<string>",
"email": "<string>",
"clientIp": "<string>",
"notifyUrl": "<string>",
"body": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 123,
orderId: '<string>',
phone: '<string>',
amount: '<string>',
payType: '<string>',
inBankCode: '<string>',
callBackUrl: '<string>',
callBackFailUrl: '<string>',
subject: '<string>',
partnerUserId: '<string>',
sign: '<string>',
name: '<string>',
email: '<string>',
clientIp: '<string>',
notifyUrl: '<string>',
body: JSON.stringify('<string>')
})
};
fetch('https://uat-interface.haipay.asia/usd/collect/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/usd/collect/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => 123,
'orderId' => '<string>',
'phone' => '<string>',
'amount' => '<string>',
'payType' => '<string>',
'inBankCode' => '<string>',
'callBackUrl' => '<string>',
'callBackFailUrl' => '<string>',
'subject' => '<string>',
'partnerUserId' => '<string>',
'sign' => '<string>',
'name' => '<string>',
'email' => '<string>',
'clientIp' => '<string>',
'notifyUrl' => '<string>',
'body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://uat-interface.haipay.asia/usd/collect/apply"
payload := strings.NewReader("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/usd/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://uat-interface.haipay.asia/usd/collect/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"phone\": \"<string>\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"name\": \"<string>\",\n \"email\": \"<string>\",\n \"clientIp\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"error": "<string>",
"msg": "<string>",
"data": {
"orderId": "<string>",
"orderNo": "<string>",
"payUrl": "<string>",
"bankCode": "<string>",
"clientToken": "<string>",
"sign": "<string>"
}
}Secret Key & Private Key (Generate Signature)
Related Topics
- International Credit Card (VISA/MASTER) Payment API
- HaiPay API Reference Overview
- HaiPay Configuration and Signature Guide
Body
Business ID (obtained from backend, must pass corresponding business ID based on currency in URL)
Merchant refund application order number
Real phone number
Transaction amount (accurate to two decimal places; do not add punctuation, e.g., ",")
URL to redirect after successful payment
URL to redirect after failed payment
Payment remark
Unique user identifier (e.g., userId), used for risk control, must be real and valid, otherwise it will affect transactions. Format requirements: digits, uppercase and lowercase letters or common symbols -~!@#$%&*()_.
Signature
User name, recommended to use real name, format: firstName and lastName separated by space, example: John Doe
Real email address
Client IP address
Callback URL
Remark details
Was this page helpful?

