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
Przykład żądania
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"
}
200 Wynik
{
  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
Przykład żądania
GET https://www.1cent.io/public/exchanger/order/get
  ?orderUID=1409
  &orderSecret="dGqwF2M2..."
  &type="payment"
200 Wynik
{
  "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)
Przykład żądania
PUT https://www.1cent.io/public/exchanger/order/update-status
Content-Type: application/json

{
  "orderUID": 1409,
  "orderSecret": "dGqwF2M2...",
  "status": "inProgress"
}
200 Wynik
{
  "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
Tworzenie zamówienia z parametrami IPN
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
}
Przychodzące żądanie IPN
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"}]
  1. IPN zostanie wysłany tylko raz
  2. 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)

checksum formula
sha256(orderId:newStatus:inAmount:outAmount:xml_from:xml_to:timestamp:ipnSecret)
checksum.js
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 af3acf947e6f0e0f2c267e300b8582e504dba12d1f2d058652b7414163c09f48

Kontrola 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}
Przykład żądania
https://www.1cent.io/en/payment/1409/dGqwF2M2eBPaSN1G5ljMS1cb
200 Wynik
HTTP/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