订单接口
包含代收/代付/充值/结算等订单接口
请求
请求地址
http POST https://DOMAIN/octopus/api/order/new
基本参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
transaction_type | string | 是 | 交易类型 | 二选一: income(收入)/expense(支出) |
amount | string | 是 | 交易金额 | "100.00" |
merchant_order_id | string | 是 | 商户订单ID | 商户自行生成的唯一订单号 |
merchant_uid | string | 是 | 商户UID | 联系管理员获得 |
currency | string | 是 | 交易货币 | cny(人民币)/usd(美元)/thb(泰铢)/vnd(越南盾)/php(菲律宾比索)/sgd(新加坡元)/idr(印尼盾)/bdt(孟加拉国塔卡) |
payment | string | 否 | 支付方式 | 商户后台可见,在商户后台勾选渠道后,可见支持的所有模式名称 |
redirect_url | string | 否 | 交易完成后重定向的URL,银河渠道为必填 | "https://example.com/redirect" |
notify_url | string | 否 | 服务器端通知URL | "https://example.com/notify" |
response_type | string | 否 | 响应类型(如返回JSON或重定向等) | 目前仅支持:"json" 留空则为302重定向 |
country | string | 是 | 国家代码 |
国际标准国家代码缩写,例如:"US" 在A2A模式下,必须提供国别代码。因此统一为必填。 |
accounting_type | string | 否 | 记账类型 | recharge(充值)/receive(收款)/pay(付款)/settle(结算) |
from | string | 否 | 收入校验: 付款方账户 | "6660006666789" |
from_name | string | 否 | 收入校验: 付款方名称 | "John Doe" |
from_bank_name | string | 否 | 收入校验: 付款方银行名称 | "Bank of Example" |
to | string | 否 | 支出校验: 收款方账户 | "6660006666987" |
to_name | string | 否 | 支出校验: 收款方名称 | "Jane Doe" |
to_bank_name | string | 否 | 支出校验: 收款方银行名称 | "Example Bank" |
签名参数增加header
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
Content-Type | string | 是 | application/json | |
OC-Key | string | 是 | 请客服提供 | |
OC-Signature | string | 是 | 通过计算获取 |
卡转卡附加参数
这是采用卡转卡时,额外需要提供的参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
additional | string | 否 |
收款附言 当越南支付使用 fypay时,这里强制填写fypay |
"any words" |
float_precision | string | 否 | 浮动金额范围代收浮动范围(2代表 在正的2位小数范围内,-2代表 在负的2位小数范围内) | "-2" |
ttl | string | 否 | 超时时间,以秒为单位 | 1200 |
卡转卡 IDR 附加参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
string | 否 |
|
"any words" | |
收款银行 from_bank_name,列表:
BCA
BRI
BNI
CIMB
PERMATA
MANDIRI
MAYBANK
LINKAJA
OVO
QRIS
DANA
DANAMON
SHOPEEPAY
ALFAMART
BNC
BSI
GOPAY_QRIS
TRANSFER_BCA
代付银行列表:
银行简称 | 银行名称 | 银行编码 |
---|---|---|
ACEH | Bank Aceh Syariah | 116 |
ACEH_UUS | Bank Agris UUS | 1160 |
ACEH_SYR | BPD ISTIMEWA ACEH SYARIAH | 1161 |
AGRIS | Bank IBK Indonesia | 945 |
AMAR | BANK AMAR INDONESIA | 1162 |
AGRONIAGA | Bank Agroniaga | 494 |
ANDARA | Bank Andara | 466 |
ANGLOMAS | Anglomas International Bank | 531 |
ANTAR_DAERAH | BANK ANTAR DAERAH | 1163 |
ANZ | Bank ANZ Indonesia | 061 |
ANZ_PANIN | Bank ANZ PANIN | 0610 |
ARTAJASA | ARTAJASA PEMBAYARAN ELEKTRONIK | 987 |
ARTA_NIAGA_KENCANA | Bank Arta Niaga Kencana | 020 |
ARTHA | Bank Artha Graha Internasional | 037 |
ARTOS | Bank ARTOS/ Bank Jago | 542 |
BALI | BPD Bali | 129 |
BISNIS_INTERNASIONAL | Bank Bisnis Internasional | 459 |
BANGKOK | Bangkok Bank | 040 |
BANTEN | BPD Banten | 558 |
BARCLAYS | BANK BARCLAYS INDONESIA | 525 |
BCA | Bank Central Asia | 014 |
BCA_SYR | Bank Central Asia (BCA) Syariah | 536 |
BENGKULU | Bank Bengkulu | 133 |
BJB | Bank Jawa Barat(BJB) | 110 |
BJB_SYR | Bank BJB Syariah | 425 |
BNI | Bank Negara Indonesia(BNI) | 009 |
BNI_SYR | Bank BNI Syariah | 427 |
BOC | BANK OF CHINA LIMITED | 069 |
BRI | Bank Rakyat Indonesia(BRI) | 002 |
BRI_SYR | Bank BRI Syariah | 422 |
BNP_PARIBAS | Bank BNP Paribas | 1450 |
BOA | BANK OF AMERICA NA | 033 |
BPRKS | BPR KS | 688 |
BSI | Bank Syariah Indonesia(BSI) | 4510 |
BTN | Bank Tabungan Negara (BTN) | 200 |
BTN_UUS | Bank Tabungan Negara (BTN) UUS | 2000 |
BTPN | Bank BTPN | 213 |
BTPN_SYARIAH | BTPN Syariah | 5470 |
BTPN_SYR | Bank BTPN Syariah | 547 |
BUKOPIN | Wokee/Bukopin | 441 |
BUKOPIN_SYR | Bank Bukopin Syariah | 521 |
BUMI_ARTA | Bank Bumi Arta | 076 |
BUMIPUTERA | BANK BUMIPUTERA | 4850 |
CAPITAL | Bank Capital Indonesia | 054 |
CENTRATAMA | BANK CENTRATAMA | 5590 |
CHINACONS | BANK CHINA CONSTRUCTION | 9490 |
CHINATRUST | CTBC Indonesia | 949 |
CNB | Centratama Nasional Bank(CNB) | 559 |
CIMB | Bank CIMB Niaga | 022 |
CIMB_UUS | Bank CIMB Niaga UUS | 0220 |
CIMB_REKENING_PONSEL | Bank CIMB Niaga REKENING PONSEL | 0221 |
CITIBANK | Citibank | 031 |
COMMONWEALTH | Bank Commonwealth | 950 |
BPD_DIY | BPD DIY | 112 |
BPD_DIY_SYR | BANK PEMBANGUNAN DAERAH DIY UNIT USAHA SYARIAH | 1121 |
DANAMON | Bank Danamon | 011 |
DANAMON_UUS | Bank Danamon UUS | 0110 |
DBS | Bank DBS Indonesia | 046 |
DEUTSCHE | Deutsche Bank | 067 |
DINAR_INDONESIA | Bank Dinar Indonesia | 526 |
DIPO | BANK DIPO INTERNATIONAL | 5230 |
DKI | Bank DKI | 111 |
DKI_UUS | Bank DKI UUS | 778 |
EKA | Bank EKA | 699 |
EKONOMI_RAHARJA | BANK EKONOMI RAHARJA | 087 |
FAMA | Bank Fama International | 562 |
GANESHA | Bank Ganesha | 161 |
HANA | LINE Bank/KEB Hana | 484 |
HARDA_INTERNASIONAL | Allo Bank/Bank Harda Internasional | 567 |
HIMPUNAN_SAUDARA | Bank Himpunan Saudara 1906 | 2120 |
HSBC | HSBC | 041 |
ICBC | Bank ICBC Indonesia | 164 |
INA_PERDANA | Bank Ina Perdana | 513 |
INDEX_SELINDO | Bank Index Selindo | 555 |
INDIA | Bank of India Indonesia | 146 |
JAGO | BANK JAGO TBK | 5421 |
JAMBI | Bank Jambi | 115 |
JASA_JAKARTA | Bank Jasa Jakarta | 472 |
JAWA_TENGAH | Bank Jateng | 113 |
JAWA_TENGAH_UUS | BPD JAWA TENGAH UNIT USAHA SYARIAH | 1130 |
JATIM | Bank Jatim | 114 |
JAWA_TIMUR | BPD Jawa Timur | 1140 |
JATIM_UUS | Bank Jatim UUS | 1141 |
JPMORGAN | JPMORGAN CHASE BANK | 032 |
JTRUST | Bank JTrust Indonesia | 095 |
KALIMANTAN_BARAT | BPD Kalimantan Barat/Kalbar | 123 |
KALIMANTAN_BARAT_UUS | BPD Kalimantan Barat UUS | 1230 |
KALIMANTAN_SELATAN | BPD Kalimantan Selatan/Kalsel | 122 |
KALIMANTAN_SELATAN_UUS | BPD Kalimantan Selatan UUS | 1220 |
KALIMANTAN_TENGAH | BPD Kalimantan Tengah (Kalteng) | 125 |
KALIMANTAN_TIMUR | BPD Kalimantan Timur | 124 |
KALIMANTAN_TIMUR_UUS | BPD Kalimantan Timur UUS | 1240 |
KESEJAHTERAAN_EKONOMI | Seabank/Bank Kesejahteraan Ekonomi(BKE) | 535 |
LAMPUNG | BPD Lampung | 121 |
MALUKU | Bank Maluku | 131 |
MANDIRI | Bank Mandiri | 008 |
MANDIRI_SYR | Bank Syariah Mandiri | 451 |
MANDIRI_TASPEN | Bank Mandiri Taspen Pos | 5640 |
MANTAP | Bank MANTAP | 564 |
MULTI_ARTA_SENTOSA | Bank Multi Arta Sentosa(MAS) | 548 |
MASPION | Bank Maspion Indonesia | 157 |
MAYAPADA | Bank Mayapada | 097 |
MAYBANK | Bank Maybank | 016 |
MAYBANK_SYR | Bank Maybank Syariah Indonesia | 947 |
MAYBANK_UUS | Bank Maybank Syariah Indonesia UUS | 0160 |
MAYORA | Bank Mayora Indonesia | 553 |
MEGA | Bank Mega | 426 |
MEGA_SYR | Bank Mega Syariah | 506 |
MESTIKA_DHARMA | Bank Mestika Dharma | 151 |
METRO_EXPRESS | BANK METRO EXPRESS | 1520 |
MNC_INTERNASIONAL | Motion/Bank MNC Internasional | 485 |
MUAMALAT | Bank Muamalat Indonesia | 147 |
MITRA_NIAGA | Bank Mitra Niaga | 491 |
MIZUHO | Bank Mizuho Indonesia | 048 |
MUTIARA | Bank MUTIARA | 10010 |
MULTICOR | Bank MULTICOR | 10006 |
NATIONALNOBU | Bank National Nobu | 503 |
NIAGA_SYR | BANK NIAGA TBK. SYARIAH | 583 |
NUSA_TENGGARA_BARAT | BPD Nusa Tenggara Barat(NTB) | 128 |
NUSA_TENGGARA_BARAT_UUS | BPD Nusa Tenggara Barat (NTB) UUS | 1280 |
NUSA_TENGGARA_TIMUR | BPD Nusa Tenggara Timur(NTT) | 130 |
NUSANTARA_PARAHYANGAN | Bank Nusantara Parahyangan | 145 |
OCBC | Bank OCBC NISP | 028 |
OCBC_UUS | Bank OCBC NISP UUS | 0280 |
PANIN | Bank Panin | 019 |
PANIN_SYR | Panin Dubai Syariah | 517 |
PAPUA | Bank Papua | 132 |
PERMATA | Bank Permata | 013 |
PERMATA_UUS | Bank Permata UUS | 0130 |
PRIMA_MASTER | Bank Prima Master | 520 |
PUNDI | BANK PUNDI INDONESIA | 584 |
QNB_KESAWAN | QNB KESAWAN | 167 |
QNB_INDONESIA | QNB Indonesia | 1670 |
OKE | Bank Oke Indonesia | 5260 |
RABOBANK | Rabobank International Indonesia | 089 |
RESONA | Bank Resona Perdania | 047 |
RIAU_DAN_KEPRI | BPD Riau Dan Kepri | 119 |
RIAU_DAN_KEPRI_UUS | BPD Riau Dan Kepri UUS | 1190 |
ROYAL | Blu/BCA Digital | 5010 |
SAHABAT_PURBA_DANARTA | BANK PURBA DANARTA | 5471 |
SAHABAT_SAMPOERNA | Bank Sahabat Sampoerna | 523 |
SBI_INDONESIA | Bank SBI Indonesia | 498 |
SHINHAN | Bank Shinhan Indonesia | 152 |
SINARMAS | Bank Sinarmas | 153 |
SINARMAS_UUS | Bank Sinarmas UUS | 1530 |
STANDARD_CHARTERED | Standard Chartered Bank | 050 |
SULAWESI | Bank Sulteng | 134 |
SULAWESI_TENGGARA | Bank Sultra | 135 |
SULSELBAR | Bank Sulselbar | 126 |
SULSELBAR_UUS | Bank Sulselbar UUS | 1260 |
SULUT | BPD Sulawesi Utara(SulutGo) | 127 |
SUMATERA_BARAT | BPD Sumatera Barat | 118 |
SUMATERA_BARAT_UUS | BPD Sumatera Barat UUS | 1180 |
NAGARI | BANK NAGARI | 1181 |
SUMSEL_BABEL | BPD Sumsel Babel | 120 |
SUMSEL_DAN_BABEL | Bank Sumsel Babel | 1200 |
SUMSEL_DAN_BABEL_UUS | Bank Sumsel Dan Babel UUS | 1201 |
SUMUT | Bank Sumut | 117 |
SUMUT_UUS | Bank Sumut UUS | 1170 |
MITSUI | Bank Sumitomo Mitsui Indonesia | 045 |
TOKYO | Bank of Tokyo | 042 |
UOB | TMRW/Bank UOB Indonesia | 023 |
VICTORIA_INTERNASIONAL | Bank Victoria International | 566 |
VICTORIA_SYR | Bank Victoria Syariah | 405 |
WOORI | Bank Woori Saudara | 212 |
YUDHA_BHAKTI | Neo Commerce/Bank Yudha Bhakti(BNC) | 490 |
DAERAH_ISTIMEWA_UUS | BPD_Daerah_Istimewa_Yogyakarta_(DIY) | 1120 |
CCB | CCB Indonesia | 088 |
RBS | Royal Bank of Scotland (RBS) | 501 |
OVO | OVO | 10001 |
DANA | DANA | 10002 |
GOPAY | GOPAY | 10003 |
SHOPEEPAY | SHOPEEPAY | 10008 |
LINKAJA | LINKAJA | 10009 |
卡转卡 MXN 附加参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
string | 否 |
|
"any words" | |
代付银行列表:
銀行編碼 | 銀行名稱 |
---|---|
2001 | BANXICO |
37006 | BANCOMEXT |
37009 | BANOBRAS |
37019 | BANJERCITO |
37135 | NAFIN |
37166 | BaBien |
37166 | BANSEFI |
37168 | HIPOTECARIA FED |
40002 | BANAMEX |
40012 | BBVA MEXICO |
40014 | SANTANDER |
40021 | HSBC |
40030 | BAJIO |
40036 | INBURSA |
40042 | MIFEL |
40044 | SCOTIABANK |
40058 | BANREGIO |
40059 | INVEX |
40060 | BANSI |
40062 | AFIRME |
40072 | BANORTE |
40106 | BANK OF AMERICA |
40108 | MUFG |
40110 | JP MORGAN |
40112 | BMONEX |
40113 | VE POR MAS |
40126 | CREDIT SUISSE |
40127 | AZTECA |
40128 | AUTOFIN |
40129 | BARCLAYS |
40130 | COMPARTAMOS |
40132 | MULTIVA BANCO |
40133 | ACTINVER |
40136 | INTERCAM BANCO |
40137 | BANCOPPEL |
40138 | ABC CAPITAL |
40140 | CONSUBANCO |
40141 | VOLKSWAGEN |
40143 | CIBANCO |
40145 | BBASE |
40147 | BANKAOOL |
40148 | PAGATODO |
40150 | INMOBILIARIO |
40151 | DONDE |
40152 | BANCREA |
40154 | BANCO COVALTO |
40154 | BANCO FINTERRA |
40155 | ICBC |
40156 | SABADELL |
40157 | SHINHAN |
40158 | MIZUHO BANK |
40159 | BANK OF CHINA |
40160 | BANCO S3 |
90600 | MONEXCB |
90601 | GBM |
90602 | MASARI |
90605 | VALUE |
90608 | VECTOR |
90613 | MULTIVA CBOLSA |
90616 | FINAMEX |
90617 | VALMEX |
90620 | PROFUTURO |
90630 | CB INTERCAM |
90631 | CI BOLSA |
90634 | FINCOMUN |
90638 | AKALA |
90638 | NU MEXICO |
90642 | REFORMA |
90646 | STP |
90648 | TACTIV CB |
90652 | CREDICAPITAL |
90653 | KUSPIT |
90656 | UNAGRA |
90659 | ASP INTEGRA OPC |
90661 | ALTERNATIVOS |
90670 | LIBERTAD |
90677 | CAJA POP MEXICA |
90680 | CRISTOBAL COLON |
90683 | CAJA TELEFONIST |
90684 | TRANSFER |
90685 | FONDO (FIRA) |
90686 | INVERCAP |
90688 | CREDICLUB |
90689 | FOMPED |
90703 | TESORED |
90706 | ARCUS |
90710 | NVIO |
90722 | Mercado Pago W |
90723 | Cuenca |
90901 | CLS |
90902 | INDEVAL |
90903 | CoDi Valida |
90728 | SPIN BY OXXO |
40124 | CBM BANCO |
90699 | FONDEADORA |
卡转卡 渠道 promptpay 附加参数
代付银行列表:
Tianci渠道附加说明
tianci渠道代付时,需要提供以下参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
to_bank_name | string | 是 | 收款银行编号 | 可以从后台查询。选择Thaiqr,查询代付银行列表,并且选择对应的银行编号 |
to_name | string | 是 | 收款人姓名 | "John Doe" |
to | string | 是 | 收款人账号 | "6660006666987" |
银河附加参数
这是采用银河渠时,额外需要提供的参数
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
bank_code | string | 否 | 银行编号 | "gcash" |
remark | string | 否 | 备注信息 | "test" |
ttl | string | 否 | 超时时间,以秒为单位 | 1200 |
代收 bank_code:
- gcash
- PMP:
PayMaya
- UBP:
UnionBank
- USDT-TRC:
usdt-trc
代付 bank_code:
- bpi:
BPI / BPI Family Savings Bank
- Unibank:
BDO Unibank, Inc.
- mbt:
Metropolitan Bank and Trust Co.
- LBOB:
LANDBANK / OFBank
- SBC:
Security Bank Corporation
- UBP:
Union Bank of the Philippines
- PNB:
Philippine National Bank (PNB)
- CBC:
China Banking Corporation
- EWBC:
East West Banking Corporation
- RCBC:
RCBC/DiskarTech
- PSB:
Philippine Savings Bank
- AUB:
Asia United Bank Corporation
- PBC:
Philippine Bank of Communications
- DBP:
Development Bank of the Philippines
- RBB:
Robinsons Bank Corporation
- APY:
Alipay / Lazada Wallet
- AB:
AllBank (A Thrift Bank), Inc.
- BM:
Bangko Mabuhay
- BCH:
Bank of China
- BC:
Bank of Commerce
- BK:
BanKo, A Subsidiary of BPI
- BNB:
BDO NeTwork Bank
- BRB:
Binangonan Rural Bank / BRBDigital
- CB:
Camalig Bank
- CARD Bank:
CARD Bank Inc.
- SME:
CARD SME Bank
- CLB:
Cebuana Lhuillier Bank / Cebuana Xpress
- CBS:
China Bank Savings, Inc.
- CPI:
CIMB Philippines, Inc.
- Bayad:
CIS Bayad Center / Bayad
- CTBC:
CTBC Bank (Philippines) Corporation
- DCP:
DCPay / COINS.PH
- DCDB:
Dumaguete City Development Bank
- DB:
Dungganon Bank (A Microfinance Rural Bank), Inc.
- Komo:
East West Rural Bank / Komo
- ERB:
Entrepreneur Rural Bank, Inc./ENTRP
- ESB:
Equicom Savings Bank, Inc.
- GOT:
GoTyme Bank
- GP:
GrabPay
- IRI:
I-Remit / iCASH
- IEM:
Infoserve / Nationlink
- ISLA:
ISLA Bank (A Thrift Bank), Inc.
- LSB:
Legazpi Savings Bank
- LDB:
Luzon Development Bank
- MBS:
Malayan Bank Savings and Mortgage Bank, Inc.
- MYA:
Maya Bank, Inc.
- PMP:
Maya Philippines, Inc./Maya Wallet
- MBP:
Maybank Philippines, Inc.
- MCCB:
Mindanao Consolidated CoopBank
- NB:
Netbank
- OP:
OmniPay, Inc.
- PAS:
Pacific Ace Savings Bank
- PPS:
PalawanPay
- PRB:
Partner Rural Bank (Cotabato), Inc.
- PBB:
Philippine Business Bank, Inc., A Savings Bank
- PTC:
Philippine Trust Company
- PDB:
Producers Bank
- QB:
Queenbank
- QCRB:
Quezon Capital Rural Bank
- Asenso:
Rural Bank of Guinobatan / Asenso
- SB:
Seabank
- SP:
ShopeePay
- SCB:
Standard Chartered Bank
- STP:
Starpay
- SLB:
Sterling Bank of Asia, Inc (A Savings Bank)
- SSB:
Sun Savings Bank, Inc.
- TC:
TayoCash
- TDB:
Tonik Bank
- TPI:
TraxionPay/DigiCOOP/COOPNET
- USB:
UCPB Savings Bank
- UDB:
UnionDigital Bank
- UNO:
UNObank
- USSC:
USSC Money Services
- VB:
Veterans Bank
- WDB:
Wealth Development Bank
- TYB:
Yuanta Savings Bank Philippines, Inc.
- JC:
Zybi Tech Inc. / JuanCash
巴西PIX 附加参数
这是采用PIX渠道时,参数説明
参数名称 | 类型 | 是否必须 | 描述 | 格式/示例 |
---|---|---|---|---|
to_bank_name
|
string | 否 | 交易方式,默認值CPF,範圍:CPF, CNPJ, PHONE, EMAIL | CPF |
cpf | string | 是 | cpf信息 | |
to
|
string | 是 | to_bank_name 是EMAIL时,填写email账号 to_bank_name 是CPF时,填写cpf账号 |
[email protected] |
to_name
|
string | 是 | 姓名 |
代收 bank_code:
代码示例
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.*;
public class Main {
private static final String API_KEY = "API_KEY";
private static final String API_SECRET = "API_SECRET";
private static final String MerchantUID = "Merchant_UID";
private static final String API_URL = "https://DOMAIN/octopus/api/order/new";
public static void main(String[] args) {
try {
Map<String, String> data = new TreeMap<>();
data.put("transaction_type", "income");
data.put("amount", "100.00");
data.put("currency", "php");
data.put("payment", "gcash");
data.put("merchant_order_id", "123qq");
data.put("merchant_uid", MerchantUID);
data.put("redirect_url", "https://example.com/redirect");
data.put("notify_url", "https://example.com/notify");
data.put("response_type", "json");
data.put("country", "ph");
StringBuilder dataString = new StringBuilder();
for (Map.Entry<String, String> entry : data.entrySet()) {
if (dataString.length() > 0) dataString.append("&");
dataString.append(entry.getKey()).append("=").append(entry.getValue());
}
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(API_SECRET.getBytes(), "HmacSHA256");
sha256_HMAC.init(secret_key);
String signature = javax.xml.bind.DatatypeConverter.printHexBinary(sha256_HMAC.doFinal(dataString.toString().getBytes())).toLowerCase();
URL url = new URL(API_URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("OC-Key", API_KEY);
conn.setRequestProperty("OC-Signature", signature);
conn.setDoOutput(true);
String jsonInputString = new JSONObject(data).toString();
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// Read the response ...
} catch (Exception e) {
e.printStackTrace();
}
}
}
响应
接口返回值文档 接口响应可能包含两种结果类型:success和error。下面是这两种结果的格式说明和示例。
当请求处理成功时,接口将返回以下结构的JSON数据:
字段名 | 类型 | 描述 | 示例值 |
---|---|---|---|
result | string | 操作结果 | "success"/"error" |
data | interface{} | 操作返回的数据 | {"payment": {...}, "payment_url": "url"} |
payment对象总json字段说明
- from:发送方的账户号码。
- from_name:发送方的账户名称。
- from_bank_name:发送方的银行名称。
- to:接收方的账户号码。
- to_name:接收方的账户名称。
- to_bank_name:接收方的银行名称。
- payment_status:支付状态。
- payment_fail_reason:支付失败原因。
- final_amount:交易的最终金额。
- currency:交易使用的货币种类。
- transaction_type:交易类型(收入/支出)。
- payment_uid:支付的唯一标识。
- channel:交易渠道。
代码示例
// 成功的响应
{
"result": "success",
"data": {
"payment": {
// 支付信息的具体字段
},
"payment_url": "https://example.com/payments/checkout"
}
}
// 有错误
{
"result": "error",
"data": "An error occurred processing your request"
}
//或
{
"result": "error",
"data": {
"error": "Invalid parameters",
"details": "The 'amount' field is required."
}
}
订单查询
订单查询接口用于查询特定订单的状态和详情。通过向API发送请求,包含必要的身份验证信息和订单识别信息,可以接收关于订单的当前状态、付款状态、金额等详细信息的响应。
请求地址
http POST https://DOMAIN/octopus/api/order/get
请求参数
请求订单查询接口时,需要提供以下参数:
- merchant_order_id: 商户订单ID,这是在创建订单时由商户自行生成的唯一订单号。
返回 JSON 字段说明
- from:发送方的账户号码。
- from_name:发送方的账户名称。
- from_bank_name:发送方的银行名称。
- to:接收方的账户号码。
- to_name:接收方的账户名称。
- to_bank_name:接收方的银行名称。
- amount:订单的原始金额。
- final_amount:订单的最终金额。
- currency:交易使用的货币种类。
- country:交易国家。
- transaction_type:交易类型(收入/支出)。
- accounting_type:会计类型(对于收入:接收、充值;对于支出:支付、结算)。
- merchant_order_id:商户订单号。
- merchant_uid:商户的唯一标识。
- merchant_name:商户名称。
- channel:交易渠道。
- payment_status:支付状态。
- payment_fail_reason:支付失败原因。
- payment:支付方式。
- response_type:响应类型。
- ip:用户IP地址。
- user_agent:用户代理。
- distribute_rules:分配规则。
- payment_uid:支付的唯一标识。
- redirect_url:重定向URL。
- notify_url:通知URL。
- notify_status:通知状态。
- notify_fail_reason:通知失败原因。
- accounting_status:会计状态。
- accounting_fail_reason:会计处理失败原因。
- signature_key:签名密钥。
代码示例
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.json.JSONObject;
public class OrderQuery {
private static final String API_KEY = "API_KEY";
private static final String API_SECRET = "API_SECRET";
private static final String API_URL = "https://DOMAIN/octopus/api/order/get";
public static void main(String[] args) {
try {
Map<String, String> params = new HashMap<>();
params.put("merchant_order_id", "12345611");
// 对参数按键排序并构造查询字符串
List<String> keys = new ArrayList<>(params.keySet());
Collections.sort(keys);
StringBuilder dataToSign = new StringBuilder();
for (String key : keys) {
if (dataToSign.length() > 0) {
dataToSign.append("&");
}
dataToSign.append(key).append("=").append(params.get(key));
}
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(API_SECRET.getBytes(), "HmacSHA256");
sha256_HMAC.init(secret_key);
String signature = javax.xml.bind.DatatypeConverter.printHexBinary(sha256_HMAC.doFinal(dataToSign.toString().getBytes())).toLowerCase();
String dataString = new JSONObject(params).toString();
URL url = new URL(API_URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("OC-Key", API_KEY);
conn.setRequestProperty("OC-Signature", signature);
conn.setDoOutput(true);
try(OutputStream os = conn.getOutputStream()) {
byte[] input = dataString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// Read the response...
} catch (Exception e) {
e.printStackTrace();
}
}
}
常用枚举字段说明
支付状态 (payment_status)
支付状态反映了订单支付过程的当前状态。
- none: 默认值,表示状态未设置。
- pending: 等待中,订单已创建但支付尚未开始。
- processing: 支付中,支付正在处理。
- completed: 支付完成,表示支付成功结束。
- failed: 支付失败,支付过程中遇到错误。
- reject: 支付拒绝,支付未能通过验证或被拒绝。
- refund: 撤回,已对支付进行退款处理。
- overdue: 逾期,支付未在规定时间内完成。
通知状态 (notify_status)
通知状态用于追踪订单支付结果的通知过程。
- none: 默认值,表示状态未设置。
- delivered: 通知中,通知已发送但未确认接收。
- completed: 通知完成,接收方已成功接收通知。
- failed: 通知失败,由于某些原因通知未能成功送达。
记账状态 (accounting_status)
记账状态反映了订单记账处理的当前状态。
- none: 默认值,表示状态未设置。
- delivered: 记账中,记账处理正在进行中。
- accounted: 记账完成,记账成功完成。
- failed: 记账失败,记账过程中出现问题。
交易类型 (transaction_type)
交易类型指明了订单的财务性质,是收入还是支出。
- income: 收入,表示此订单为收入。
- expense: 支出,表示此订单为支出。
记账类型 (accounting_type)
记账类型具体化了交易类型的财务处理方式。
- recharge: 充值,指向账户的资金增加。
- receive: 收款,从其他方收到款项。
- settle: 结算,完成与商户或第三方的款项结算。
- pay: 支出,从账户中支付款项。