Integracja z usługą 1cent
Zrób podanie
POST /public/exchanger/order/create
| Parametr | Typ | Opis |
routeId | ObjectID | id kierunki |
partner | String | kod partnera |
amount | Float | kwota |
fromValues | Array | [{key: ObjectID, value: String}] |
toValues | Array | [{key: String, value: String}] |
routeValues | Array | [{key: ObjectID, value: String}] |
lang | String | język |
agreement | Boolean | umowa |
hideOutData | Boolean | Ukryj rekwizyt |
clientCallbackUrl | String | oddzwonienie po zakończeniu aplikacji klient zobaczy przycisk powrotu na stronę i zostanie przekierowany na ten adres URL |
ipnUrl | String | Adres URL natychmiastowego powiadomienia o płatności |
ipnSecret | String | ciąg do generowania bezpiecznego hasha w adresie IPN |
skipPreview | Boolean | pomiń krok potwierdzenia zamówienia |
POST https://www.1cent.io/public/exchanger/order/create
Content-Type: application/json
{
"routeId": "64a1f3...",
"amount": 100,
"lang": "ru",
"agreement": true,
"clientCallbackUrl": "https://your-merchant-site.com/callback",
"ipnUrl": "https://your-merchant-site.com/ipn",
"ipnSecret": "your_secret"
}{
status: "success",
error: 0,
data: {
orderUID: 1409,
orderId: "64a1f3...",
orderSecret: "dGqwF2M2...",
paymentUrl: "https://www.1cent.io/en/payment/1409/dGqwF2M2..."
}
}Pobierz zamówienie
GET /public/exchanger/order/get
| Parametr | Typ | Opis |
orderUID | Number | numeryczny ID zamówienia |
orderSecret | String | sekret zamówienia z odpowiedzi /order/create |
type | String | typ strony: payment lub order |
GET https://www.1cent.io/public/exchanger/order/get
?orderUID=1409
&orderSecret="dGqwF2M2..."
&type="payment"{
"orderUID": 1409,
"orderId": "64a1f3...",
"newStatus": "waitPayment",
"inAmount": "100",
"outAmount": "317.42",
"xml_from": "ETH",
"xml_to": "WMZ"
}Zaktualizuj status zamówienia
Używane do potwierdzenia płatności przy ręcznej metodzie — przenosi zamówienie z waitPayment do inProgress.
PUT /public/exchanger/order/update-status
| Parametr | Typ | Opis |
orderUID | Number | numeryczny ID zamówienia |
orderSecret | String | sekret zamówienia z odpowiedzi /order/create |
status | String | nowy status zamówienia (np. inProgress) |
PUT https://www.1cent.io/public/exchanger/order/update-status
Content-Type: application/json
{
"orderUID": 1409,
"orderSecret": "dGqwF2M2...",
"status": "inProgress"
}{
"status": "success",
"order": {
"orderUID": 1409,
"newStatus": "inProgress"
}
}IPN (Powiadomienie o zmianie statusu wniosku o płatność)
Aby otrzymywać powiadomienia o zmianie statusu zamówienia, przy jego tworzeniu przekaż parametry ipnUrl, ipnSecret, clientCallbackUrl i hideOutData. Gdy status się zmieni, serwer wyśle żądanie POST na twój ipnUrl z następującymi danymi:
POST https://your-merchant-site.com/ipn
| Parametr | Typ | Opis |
orderUID | Number | podanie uid |
orderId | String | podanie id (ObjectId) |
newStatus | String | podanie aktualny stan |
inAmount | String | kwota płatności przychodzącej |
outAmount | String | kwota płatności wychodzącej |
xml_from | String | waluta wysyłki |
xml_to | String | waluta odbioru |
timestamp | Number | Powiadomienia o czasie uniksowym i ipn |
toValues | Array | [{key, name, value}] — rekwizyty i podania |
POST https://www.1cent.io/public/exchanger/order/create
Content-Type: application/json
{
"routeId": "64a1f3...",
"amount": 100,
"agreement": true,
"ipnUrl": "https://your-merchant-site.com/ipn",
"ipnSecret": "your_secret",
"clientCallbackUrl": "https://your-merchant-site.com/callback",
"hideOutData": false
}POST https://your-merchant-site.com/ipn
Content-Type: application/x-www-form-urlencoded
orderUID=1409
&orderId="5d8e6002b80b7b4cd75a6424"
&newStatus="done"
&inAmount="2"
&outAmount="317.42"
&xml_from="ETH"
&xml_to="WMZ"
&timestamp=1571328406072
&toValues=[{"key":"wallet","name":"Кошелёк","value":"Z123456789"}]- IPN zostanie wysłany tylko raz
- Dostarczenie IPN nie jest gwarantowane (jeśli serwer nie odpowie na żądanie, nie zostanie ono ponownie wysłane)
Spis statusów
| Status | Opis |
new | Nowe podanie |
waitPayment | oczekiwanie na płatność od użytkownika |
errorPayment | niestandardowy błąd płatności (błąd wysyłania sprzedawcy) |
inProgress | w trakcie (oczekuje na przetworzenie przez administratora lub opłacenie wniosku) |
inProgressPayout | w kolejce do płatności (płatność przyjęta pomyślnie) (jeśli skonfigurowana jest płatność automatyczna w walucie zostanie ona zainicjowana) |
errorPayout | błąd płatności (wystąpił błąd podczas płatności) |
hold | aplikacja jest zamrożona (problemy z aplikacją) |
done | aplikacja pomyślnie opłacona |
returned | wniosek został opłacony, ale nie wszystkie warunki wymiany i metody zwrotu nadawcy zostały spełnione |
deleted | aplikacja usunięta (anulowana) |
Poproś o weryfikację sumy kontrolnej (IPN)
sha256(orderId:newStatus:inAmount:outAmount:xml_from:xml_to:timestamp:ipnSecret)const stringForHash = orderId+":"+newStatus+":"+inAmount+":"+outAmount+":"+xml_from+":"+xml_to+":"+timestamp+":"+ipnSecret;
// example string for hash 5d8e6002b80b7b4cd75a6424:inProgress:2:317.42:ETH:WMZ:1571328406072:SECRET123
const hash = crypto.createHash('sha256').update(stringForHash).digest('hex')
// example hash af3acf947e6f0e0f2c267e300b8582e504dba12d1f2d058652b7414163c09f48Kontrola płatności
- Jeśli chcesz kontrolować status wniosków, utwórz je za pomocą autoryzacji, wtedy wszystkie wnioski zostaną odzwierciedlone na Twoim koncie osobistym;
- Możesz zapisać UID żądania i klucz tajny oraz ręcznie przejść do żądania, wprowadzając te dane w pasku adresu
Zapłata
Możesz użyć /payment/, aby wyświetlić stronę płatności
GET /{lang}/payment/{orderUID}/{orderSecret}
https://www.1cent.io/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cbHTTP/1.1 200 OK
Content-Type: text/html
<!-- Payment page for order #1409 -->- Możesz też po prostu podać link do giełdy, tak jak widzi go wszyscy klienci w taki sam sposób, jak w pierwszej opcji, z wyjątkiem /payment/ należy zastąpić /order/
- Metoda ma parametry, które pozwalają wyświetlić szczegóły płatności lub formę płatności na Twojej stronie, z której możesz skorzystać. WAŻNE: Jeśli korzystasz z metody przedpłaconej, musisz zaktualizować status zamówienia z waitPayment na inProgress po dokonaniu płatności