AxtonPay API

Document version: 0.9

Gwybodaeth gyffredin

Pwynt terfyn API

https://mp.axtonpay.com/api/v1/private/checkout

Content-type

Mae'r API yn derbyn ceisiadau HTTP gyda 2 math o gynnwys: 'application/x-www-form-urlencoded', 'application/json'.

Dylai penawd HTTP ffitio i gynnwys corff POST.

Crynodebau a diffiniadau

  • {PID} - ID'r anfoneb, fel arfer mae'n y dilyniannol alffanuemrig unigryw 8-nod.
  • Shop - Eich gwefan sy'n derbyn taliadau trwy'r gwasanaeth AxtonPay

Algorifft o waith gyda'r API

Trefn arferol o weithredoedd i dderbyn taliad:

  • creu anfoneb ('/api/v1/private/checkout/payment/create'), bydd ymateb yr API yn dychwelyd URL yr anfoneb ('invoice_url'),
  • anfonwch y prynwr at y ddyled hon er mwyn gwneud taliad,
  • aros am hysbysiadau gweinydd AxtonPay, fydd yn dod i 'server_notification_url',
  • ar dderbyn unrhyw hysbysiad gan AxtonPay, gwirio dilysrwydd ei lofnodi ac yn ddelfrydol anfon cadarnhad o dderbyn i AxtonPay ('/api/v1/private/checkout/payment/confirm/{PID}'),
  • os bydd statws anfoneb yn cael ei newid, perfformiwch gamau sy'n cyfateb i'r statws hwn (er enghraifft, gofyn am wybodaeth lawn am yr anfoneb, danfon y nwyddau, creu tocyn i'r tîm cymorth, ac ati).

Os gosodwch 'server_notification_url' gwag neu annilys wrth greu anfoneb, ni all y gwasanaeth anfon hysbysiadau am newidiadau statws; mewn achosion o’r fath, dylech wirio’r anfoneb eich hun ar ryw gyfnod ('/api/v1/private/checkout/payment/get/{PID}').

Awdurdodi ceisiadau

Er mwyn awdurdodi cais, mae angen cyfrifo Hash o stribed wedi'i ffurfio mewn ffordd arbennig. Mae'r stribed wedi'i lunio trwy gymysgu (gludo gyda'i gilydd) yr argymhellion URL (QUERY_STRING) a chorff y cais POST (REQUEST_BODY). Mae'n bwysig y dylid cymryd pob cydran yn union fel y cânt eu trosglwyddo i'r gweinydd. Dylid cymryd argymhellion URL (QUERY_STRING) o'r URL fel llinell sengl, heb newid trefn yr argymhellion a heb adael unrhyw elfennau. Dylid defnyddio corff cais POST (REQUEST_BODY) hefyd heb unrhyw newidiadau, gan gynnwys peidio â thynnu dyfynodau, bylchau, cromfachau, torri llinellau ohono.

Yn achosion corff cais POST gwag, ac yn achos dadleuon URL gwag, bydd y cydran honno yn syml yn gair gwag.

Trefn y data yn y cais llofnodi: QUERY_STRING yn gyntaf, yna'r POST data. Ni ddylid mewnosod unrhyw arwyddion cysylltu rhyngddynt, dim ond cyfuno dau llinyn testun.

Unwaith eto, mae pob symbol yn bwysig. Ni ddylech ychwanegu na thynnu hyd yn oed un gofod gwag neu symbol llinell newydd. Defnyddiwch y data crai a dderbyniwyd gan y gweinydd.

Mae hash SHA-256 gyda'r allwedd 'Secret key' yn cael ei dynnu o'r llinyn canlyniadol ac yn cael ei ddefnyddio fel yr ail ddadl i'r swyddogaeth hash_hmac().

Mae'n orfodol pasio'r paramedr 'time' sy'n cynnwys y POSIX timestamp (Unix time) cyfredol.

Mae'r llofnod hwn yn ddilys am 24 awr. Os yw gwerth y paramedr 'time' yn wahanol i amser y gweinydd cyfredol fwy nag 24 awr (boed ymlaen neu'n ôl), bydd y cais yn methu hyd yn oed os caiff y llofnod ei gyfrifo heb wallau.

Os yw panel masnachwr wedi derbyn cais gyda rhai llofnodion, ni ellir defnyddio'r llofnod hwnnw eto, hyd yn oed i anfon y cais gyda'r un paramedrau (mae hyn yn cynnwys y paramedr 'time').

Fe gyhoeddir y hash canlyniadol yn y pennawd HTTP 'Sign'.

Yn ogystal â'r llofnod a gyfrifwyd, mae'n rhaid i'r cais gynnwys pennawd 'Api-Key' sy'n cynnwys allwedd API a ddefnyddiwyd. Enghraifft:

$headers = [
      'Api-Key: ' . $the_api_key,
      'Sign: ' . $signature_sha256
    ];

Gallwch arwyddo'r cais a anfonir at y AxtonPay gyda unrhyw allwedd ddilys sy'n perthyn i'r taliad hwn. Fodd bynnag, mae'r AxtonPay bob amser yn defnyddio'r allwedd rydych chi wedi'i dewis yn y panel masnachwr.

Enghraifft o gyfrifiad llofnod:

/* 
Imagine there is the POST request:
URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561'
POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'
So there are HTTP query string and request body:
*/ 
$the_query_string = 'time=1735084500.3561';
$the_request_body = '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD';

// • A pair of 'API key' and 'Secret key' gathered from the admin panel
$the_api_key = 'key1';
$the_api_secret = 'secret1';

// • Concatenation:
$string_for_sha = $the_query_string . $the_request_body;
// Value: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'

// • Calculating the HTTP header 'Sign'
// hash method is SHA-256
$signature_sha256 = hash_hmac("sha256", $string_for_sha, $the_api_secret); 
// '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd'

/* • Signed HTTP request:
  Method: POST
  URI: '/api/v1/private/checkout/payment/create?time=1735084500.3561'
  HTTP header 'Api-Key': 'key1'
  HTTP header 'Sign': '31ca271a15e45802e07b7559a5f520656c050dda79e6fa46d52a15fc51d193cd'
  POST body: '[email protected]&shop_payment_id=INVOICE-1746&pms=all&amount=19.95&currency=USD'
*/

Talu sylw i bylchau gwyn a thorri llinellau mewn enghraifft arall:

/* 
Imagine there is the POST request:
URI: '/api/v1/private/checkout/payment/create?shop_name=Very%20useful%20service'
POST body: '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}'

Attention! It's important to keep the raw data 'as is', including all tabulations, whitespaces, and line breaks. 
For example, the signature becomes invalid if your software formats json, adds or removes spaces. 

So there are such HTTP query string and POST request body:
*/ 
$the_query_string = 'shop_name=Very%20useful%20service';
$the_request_body = '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}';

// • A pair of 'API key' and 'Secret key' gathered from the merchant panel
$the_api_key = 'key1';
$the_api_secret = 'secret1';

// • Concatenation:
//
// hash method is SHA-256 (HTTP query string + request body)
$string_for_sha = $the_query_string . $the_request_body;
/* Value: 'shop_name=Very%20useful%20service{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}'
*/

// • Calculating the HTTP header 'Sign'

$signature_sha256 = hash_hmac("sha256", $string_for_sha, $the_api_secret); 
// 'ef15476f28b379e4b137a2dcd9ed495332e4766004ac3610bb92a69ba2303c28'

/* • Signed HTTP request:
  Method: POST
  URI: '/api/v1/private/checkout/payment/create'
  HTTP header 'Api-Key': 'key1'
  HTTP header 'Sign': 'ef15476f28b379e4b137a2dcd9ed495332e4766004ac3610bb92a69ba2303c28'
  POST body: '{
  "shop_user_id": "[email protected]",
  "shop_payment_id": "INVOICE-1746",
  "shop_payment_desc": "Premium service
(1 month)",

  "pms": "all",
  "amount": "19.95",
  "currency": "USD",
  "time": "1735084500.3561"
}' 
*/

Y Python enghraifft o lunio'r llinyn ar gyfer cyfrifiad llofnod:

string_for_hash_calculation = f'{request.query_params.urlencode()}{request.data.urlencode()}'

Paramedrau

Mae'r API yn derbyn pob paramedr yn y ddau QUERY_STRING ac yn nghorff y POST cais.

Newynnau Bolea

Mae’r API yn disgwyl cael '0' neu '1' mewn newidynnau Boolean, ond oherwydd trosi math guddiedig, bydd unrhyw llinyn testun yn cael ei drin fel '1', hyd yn oed y gair 'false'. Felly, i osod gwerth 'FALSE' yn glir ar gyfer newidyn Boolean, mae angen i chi roi iddo naill ai’r gwerth '0' neu linyn gwag.

Gwahanydd degol

Dim ond y pwynt degolir a ddefnyddir fel gwahanydd degol mewn rhifau.

Achos cymeriad mewn paramedrau

Gyda phan eithriadau, mae pob parameter yn sensitif i achosion.

URL Galwad Yn Ôl

Yn nhaflen gweinyddol AxtonPay, ar dudalen gosodiadau talu, mae'n bosibl gosod URLau siop i dderbyn hysbysiadau gweinydd-gweinyddwr gan AxtonPay, yn ogystal â URLau ar gyfer ailgyfeirio'r prynwr ar ôl talu bil neu ei ganslo, yn ogystal ag mewn achos gwall.

Gellir gorchymyn y URLau hyn yn y cais creu anfoneb.

Dulliau AxtonPay API

Creu anfoneb: /api/v1/private/checkout/payment/create

Mae’r dull /api/v1/private/checkout/payment/create yn cychwyn creu’r anfoneb.

Os llwyddiannus, bydd y dull yn dychwelyd cyswllt ('invoice_url') y dylech anfon y cleient ato i wneud taliad.

Paramedrau anfoneb perchennog:

  • time (angen) - POSIX timestamp (Unix time)
  • amount (angen) - swm i’w dalu (pris y cynnyrch neu’r gwasanaeth y mae’r siop am ei dderbyn)
  • currency (angen) - Cod arian 3-llythyren yn unol â ISO 4217-alpha, heb fod yn sensitif i achosion
  • pms (angen) - dulliau talu a ddangosir ar dudalen y anfoneb. Os ydych am ganiatáu pob dull talu, y gwerth yw 'all'; os ydych am ganiatáu dim ond rhai ohonynt, rhestrwch eu hymgyrch rhifol wedi'i wahanu gan goma.
  • pm - adnabydd y dull talu a ddewiswyd. Mae'n bwysig os caiff y paramedr 'pm' ei basio, y bydd y cyfrifonyn yn cael ei greu yn 'modd tryloyw', h.y. ni fydd y prynwr yn gweld tudalen y cyfrifonyn, ond yn mynd yn syth i'r system dalu.
  • extra_data - aryfyrddyn cysylltiol sy’n cynnwys unrhyw ddata ychwanegol; mae’r data hwn yn cael ei ddychwelyd i’r siop yn ei gyfanrwydd
  • shop_user_id - dynodwr defnyddiwr yn y siop, fe'i dyherir yn ôl i'r siop mewn ffurf ddi-newid
  • shop_payment_id - nwyddau adnabod taliad yn y siop, fe'i dyfir i'r siop mewn ffurf anhyndadwy
  • shop_name - enw'r siop (yn cael ei arddangos ar dudalen y anfoneb)
  • shop_payment_desc - disgrifiad archeb (wedi'i arddangos ar dudalen y fil)
  • shop_payment_remark - eich nodiadau am y taliad hwn (mae hwn yn faes ar gyfer unrhyw nodiadau sydd gennych am y taliad, nad yw AxtonPay yn ei basio unrhywle; mae'n weladwy'n unig yn rhestr y taliadau; nid yw'n mynd yn ôl i'r siop)
  • valid_time - y cyfnod amser y gellir talu'r anfoneb ynddo; mewn eiliadau
  • view_time - cyfnod amser lle mae'r anfoneb ar gael i'w gweld trwy gyswllt allanol; mewn eiliadau; mae'r cyfrif ymlaen yn dechrau ar ôl i'r cyfnod 'valid_time' ddod i ben
  • server_notification_method - dull o anfon hysbysiadau gweinydd-i-weinydd am statws taliadau i'r siop; gwerthoedd dilys: POST, GET

Mae rhai gosodiadau ar gyfer y anfoneb wedi'u gosod ar dudalen gosodiadau y taliad. Ond bydd y gwerthoedd a basiwyd yn y cais yn cael blaenoriaeth dros y gosodiadau hyn.

Paramedrau taliad y gellir eu gorlwytho ar gyfer y filiedig hwn:

  • customer_success_url - dolen y bydd y prynwr yn cael ei hailgyfeirio iddi os caiff y faktur ei dalu'n llwyddiannus (h.y. os yw statws y faktur yn 'paid' neu 'overpaid').
  • customer_cancel_url - dolen y bydd y prynwr yn cael ei ailgyfeirio iddi os caiff y taliad ei ganslo
  • customer_fail_url - cyswllt y caiff y prynwr ei ailgyfeirio iddo os bydd y taliad yn dod i ben mewn gwall
  • server_notification_url - cyswllt ar gyfer anfon hysbysiadau gweinydd-i-weinydd o statws talu i’r siop

Nodyn: Er mwyn cydymffurfio â'ch polisi preifatrwydd eich hun, fel arfer nid yw'n angenrheidiol cynnwys data personol eich cwsmer yn eiddo'r anfoneb. Er enghraifft, yn y paramedr "shop_user_id", mae'n well nodi ID cwsmer cyffredinol yn hytrach na'u e-bost neu rif ffôn. Hefyd yn y "shop_payment_desc", mae'n well peidio â chynnwys data cwsmer o gwbl, oherwydd maent eisoes yn gwybod popeth amdanynt eu hunain; yn lle hynny, gallwch ysgrifennu rhywfaint o wybodaeth am y nwyddau neu wasanaethau a dalwyd, neu hyd yn oed ysgrifennu'r math o gam, er enghraifft, "Prynu" neu "Ychwanegu cydbwysedd".

Caiff yr holl gyfeiriadau eu trosglwyddo'n angenrheidiol gyda'r protocol.

Enghraifft o gais:

<?php
// API credentials - get it from settings of the checkout
$api_key = 'API_KEY';
$api_secret = 'API_SECRET';
// API endpoint
$api_endpoint = 'https://mp.axtonpay.com/api/v1/private/checkout';
// Current POSIX timestamp
$time = time();
// API method URL
$api_url = $api_endpoint . '/payment/create';

// Prepare POST parameters
$post_data = [
    'amount' => 4.99,
    'currency' => 'USD',
    'pms' => 'all', // visible payment methods; either 'all' or comma-separated list of selected GUIDs
    // 'pm' => '92807385', // define the certain payment method if you do not want payer to see the list of all possible payment methods

    // Below parameters are optional
    'extra_data' => ['param1'=>'value 1', 'param2'=>'value 2'],

    'shop_user_id' => '[email protected]',
    'shop_payment_id' => 'TEST-333-' . $time,
    'shop_name' => 'TEST-333 web shop',
    'shop_payment_desc' => 'TEST-333 payment description visible to payer',
    'shop_payment_remark' => 'TEST-333 payment remark for admin',

    'customer_success_url' => 'https://example.com/?status=paid-or-overpaid&once=TEST-333-' . $time, 
    'customer_cancel_url' => 'https://example.com/?status=cancelled-by-payer&once=TEST-333-' . $time,
    'customer_fail_url' => 'https://example.com/?status=error&once=TEST-333-' . $time,
    'server_notification_url' => 'https://example.com/?for=server-to-server-notificataions',
    'server_notification_method' => 'POST',
	
    'valid_time' => 60*60*24*7, // seconds
    'view_time'  => 60*60*24*21, // seconds, clock starts after ending of 'valid_time' period
];

// Prepare GET parameters
$query_string = 'time=' . $time;

// Build the request body
$request_body = json_encode($post_data); // Encode as JSON
// $request_body = http_build_query($post_data);

// Concatenate QUERY_STRING and REQUEST_BODY
$string_for_sha = $query_string . $request_body;

// Calculate the signature
$signature = hash_hmac('sha256', $string_for_sha, $api_secret);

// Prepare HTTP headers
$headers = [
    'Api-Key: ' . $api_key,
    'Sign: ' . $signature,
    'Content-Type: application/json'
];

// Initialize cURL
$ch = curl_init($api_url . '?' . $query_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_body);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Execute the request
$response = curl_exec($ch);

// Close cURL
curl_close($ch);
?>

Enghraifft o ymateb llwyddiannus wrth ofyn am greu anfoneb:

{
    "status": "ok",
    "data": "invoice created",
    "pid": "HNQ5CAHM",
    "test": false,
    "created_at": "2025-12-27T08:14:55.000000Z",
    "invoice_url": "https:\/\/27375212.b88pay.com\/i\/HNQ5CAHM"
}

Cael gwybodaeth anfoneb: /api/v1/private/checkout/payment/get/{PID}

I gael y wybodaeth sydd ei hangen arnoch, galwch y dull /api/v1/private/checkout/payment/get/{PID}, trwy nodi'r PID o'r anfoneb ar ddiwedd y URL.

Paramedrau cais:

  • time (angen) - POSIX timestamp (Unix time)

Enghraifft o linell ar gyfer cyfansoddi llofnod:

// Full URL:
https://mp.axtonpay.com/api/v1/private/checkout/payment/get/GIKR3XPY?time=1766837343

// String for signature calculation: 
time=1766837343

Enghraifft o ateb:

{
    "status": "ok",
    "data": {
        "pid": "HNQ5CAHM",
        "checkout_guid": 34677320,
        "created_at": "2025-12-27 12:07:21",
        "updated_at": "2025-12-27 12:07:34",
        "data": {
            "ip": "1.2.3.4",
            "pms": "all",
            "extra_data": {
                "param1": "val1",
                "param2": "val2",
                "server_notification_url": "https:\/\/example.com\/?for=server-to-server-notificataions"
            },
            "redirect_url": "\/wait\/HNQ5CAHM",
            "customer_fail_url": "https:\/\/example.com\/?status=error&id=TEST-333-1766837240",
            "allow_change_amount": false,
            "customer_cancel_url": "https:\/\/example.com\/?status=cancelled-by-payer&id=TEST-333-1766837240",
            "customer_success_url": "https:\/\/example.com\/?status=paid-or-overpaid&id=TEST-333-1766837240"
        },
        "payment_status": 0,
        "amount": "4.99",
        "filled": "0.00",
        "currency_id": 5,
        "transparent": 1,
        "expires_at": "2026-01-03 12:07:21",
        "invisible_at": "2026-01-26 12:07:21",
        "paid_at": null,
        "confirmed_at": null,
        "shop_name": "TEST-333 web shop",
        "shop_user_id": "[email protected]",
        "shop_payment_id": "TEST-333-1766837240",
        "shop_payment_desc": "TEST-333 payment description visible to payer",
        "shop_payment_remark": "TEST-333 payment remark for merchant",
        "payment_method_id": 92807385,
        "gateway_id": 40056646,
        "payment_option_id": 297,
        "txid": null,
        "account_from": null,
        "account_to": "TEnYvbfg9YqJeaVtVHAwEvG2kmAJcTzxTh",
        "payment_option_amount": "17.865973",
        "payment_option_filled": "0.000000",
        "payment_option_currency_id": 317,
        "exchange_rates_expires_at": "2025-12-27 12:27:33",
        "test": false,
        "initiator": "api",
        "initiator_info": null,
        "payment_option": {
            "id": 297,
            "gateway_id": 40056646,
            "pm": "trx",
            "currency_id": 317,
            "name": "Tron",
            "icon": "crypto\/tron.png",
            "min_invoice": null,
            "max_invoice": null
        },
        "payment_option_currency": {
            "id": 317,
            "name": "Tron",
            "code": "TRX",
            "minor_unit": 6
        },
        "currency": {
            "id": 5,
            "name": "United States dollar",
            "code": "USD",
            "minor_unit": 2
        },
        "invoice_url": "https:\/\/27375212.b88pay.com\/i\/HNQ5CAHM"
    }
}

Cymhariaeth rhwng y swm a ofynnwyd a’r swm a dalwyd

Mae'r ymateb yn cynnwys sawl swm gwahanol (yn y gwledydd lle rhoddwyd y ddyfarniad):

  • "amount" - swm y biliedig,
  • "filled" - talu rhan o'r anfoneb,
  • "total_filled" - faint oedd y cleient wedi talu yn gyfanswm, gan gynnwys comisiynau.

Os "filled = amount", yna mae wedi’i dalu yn union faint sydd ei angen.

Os "filled > amount", mae gormod o daliad.

Os "filled < amount", nid yw'r anfoneb wedi'i thalu'n llawn (talu rhy ychydig).

Ffactor: prosesu hysbysiad gan AxtonPay am newid statws

Bob tro y caiff statws anfoneb ei newid, mae AxtonPay yn anfon hysbysiad at server_notification_url (gan ddefnyddio'r server_notification_method)

Data enghreifftiol:

{
    "pid": "U5IB4WIO",
    "status": "3",
    "shop_user_id": "3q23g",
    "shop_payment_id": "h76r5",
    "amount": "240.00000000",
    "filled": "0.00000000",
    "fee": "0",
    "total_filled": "0.00000000",
    "currency": "DASH",
    "test": "0"
}

Fel ymateb i'r hysbysiad hwn AxtonPay yn disgwyl derbyn HTTP code 200, sy'n cadarnhau ei dderbyn llwyddiannus. Fel arall, bydd AxtonPay yn ymdrechu eto 12 gwaith arall ar gyfnodau tyfu'n raddol, ac yna mae statws yr hysbysiad yn newid i 'error' (ond ni fydd hyn yn effeithio ar statws y ffaktwr ei hun).

Gwerthoedd statws posibl:

  • 0 - pending
  • 1 - paid
  • 2 - error
  • 3 - cancelled by customer
  • 4 - underpaid
  • 5 - overpaid
  • 8 - expired

Mae statws taliad llwyddiannus yn 1 (paid) a 5 (overpaid); yn achos eu derbyn gallwch drosglwyddo'r pryniant a dalwyd i'r cwsmer neu ail-lenwi'r balans. Ar gyfer taliadau gyda statws 5 (overpaid), yn achos ail-lenwi balans gallwch ail-lenwi'r balans gyda swm y taliad a dderbyniwyd yn wir, ond yn achos gwerthu nwyddau/gwasanaethau a swm sylweddol o ordalw, mae'n ddoeth cysylltu â'r taluwr a phenderfynu gydag ef sut i ddelio â'r ordalw.

Mae statws llwyddiannus yn rhannol yw 4 (underpaid); rhag ofn derbyn y statws hwn mae'n bosibl ail-lenwi'r balans gyda swm y taliad a dderbyniwyd yn wir. Fodd bynnag, ni ellir ystyried y statws hwn yn llwyddiannus ar gyfer gwerthu nwyddau/gwasanaethau.

Pob statws arall - 0 (pending), 2 (error), 3 (canceled by customer) yn golygu absenoldeb cyflwr tâl; os cânt eu derbyn ni ddylid gweithredu unrhyw gamau ar atgyflenwi balans neu werthu nwyddau/gwasanaethau.

Gwirio llofnod

I sicrhau bod y hysbysiad hwn wedi'i anfon gan AxtonPay yn union, mae'n hanfodol dilysu llofnod yr hysbysiad a dderbyniwyd cyn ei gredu. Mae'r dilysu yn debyg i lofnodi eich ceisiadau eich hun, dim ond y cam olaf sy'n cael ei ychwanegu, pan ddylech gymharu'r llofnod wedi'i gyfrifo gyda'r pennawd HTTP a dderbyniwyd 'Sign'.

Y prif gamau ar ôl derbyn hysbysiad am y statws talu newidiedig yw'r canlynol:

  • cymerwch yr holl linyn o dadleuon (QUERY_STRING) o’r hysbysiad a dderbyniwyd,
  • cymerwch yr holl POST data (REQUEST_BODY) o'r hysbysiad a dderbyniwyd,
  • cyfrifwch y llofnod gan ddefnyddio'r QUERY_STRING + REQUEST_BODY hynny a'r 'Secret key' priodol,
  • cyfrifwch lofnod a gyfrifwyd gyda'r un a dderbyniwyd yn y pennyn HTTP 'Sign',
  • os yw'r llofnodion yr un fath, daeth y hysbysiad yn wir gan AxtonPay;
  • os yw'r llofnodion yn wahanol, efallai ei bod yn ymgais i dwyllo gan y talu.

Enghraifft o linell ar gyfer cynhyrchu llofnod:

// Full URL:
https://EXAMPLE.COM?time=1737027838.1237

// POST body: 
pid=ABCD5678&status=1&shop_user_id=&shop_payment_id=&amount=25.00000000&filled=25.00000000&fee=0&total_filled=25.00000000&currency=RDD&test=0

// String for signature calculation: 
time=1737027838.1237pid=ABCD5678&status=1&shop_user_id=&shop_payment_id=&amount=25.00000000&filled=25.00000000&fee=0&total_filled=25.00000000&currency=RDD&test=0

Cadarnhad bod y siop wedi prosesu'r wybodaeth talu: /api/v1/private/checkout/payment/confirm/{PID}

Anfonir y cais hwn at AxtonPay mewn ymateb i hysbysiad a dderbyniwyd ganddo. O ran swyddogaeth, mae'n gadarnhad bod y siop wedi derbyn a phrosesu'r hysbysiad a dderbyniwyd yn llwyddiannus.

I anfon cais, galwch y dull /api/v1/private/checkout/payment/confirm/{PID}, drwy nodi pid y anfoneb ar ddiwedd y URL.

Paramedrau cais:

  • time (angen) - POSIX timestamp (Unix time)
  • status (angenrheidiol, rhif cyfan) - rhif statws taliad y mae'r siop yn anfon cadarnhad iddo

Os yw'r statws a drosglwyddir yn cyfateb i statws cyfredol y gerdyn cyflog hwn yn y system, bydd AxtonPay yn ymateb gyda 'OK' ac os nad yw'n cyfateb, bydd yn ymateb gyda gwall.

Enghraifft o linell ar gyfer cynhyrchu llofnod:

// Full URL:
https://mp.axtonpay.com/api/v1/private/checkout/payment/confirm/ABCD5678?time=1737011414

// POST body: 
{"status":"1"}

// String for signature calculation:
time=1737011414{"status":"1"}

Enghraifft o ymateb os yw statws talu cyfredol yr un peth:

{
    "status": "ok",
    "data": "\"Paid\" status notification is confirmed"
}

Enghraifft o ymateb os yw statws talu presennol yn wahanol i'r un a drosglwyddwyd yn y cais:

{
    "status": "error",
    "message": "Something went wrong"
}

Codau arian

Y gwledydd y gellir eu defnyddio ar gyfer creu anfoneb.

Mae'r rhan fwyaf o godau arian a ddefnyddir yn perthyn i arian ffioed, ac maent yn gyfartal â'r ISO 4217. Mae'r rhestr hefyd yn cynnwys sawl arian digidol.

Cod Enw Digidau degol Math
BCH Bitcoin Cash 8 Arian Digidol
BLK Blackcoin 8 Arian Digidol
BNB Binancecoin 18 Arian Digidol
BTC Bitcoin 8 Arian Digidol
BTT BitTorrent 18 Tocyn crypto
BUSD Binance USD 18 Tocyn crypto
DAI Dai 18 Tocyn crypto
DASH Dash 8 Arian Digidol
DOGE Dogecoin 8 Arian Digidol
ETC Ethereum Classic 18 Arian Digidol
ETH Ethereum 18 Arian Digidol
LTC Litecoin 8 Arian Digidol
NLG Gulden 8 Arian Digidol
RDD ReddCoin 8 Arian Digidol
TRX Tron 6 Arian Digidol
USDC USD Coin 6 Tocyn crypto
USDD Decentralized USD 18 Tocyn crypto
USDT Tether USDT 6 Tocyn crypto
VTC Vertcoin 8 Arian Digidol
XVG Verge 8 Arian Digidol
AED United Arab Emirates dirham 2 Arian fiat
AFN Afghan afghani 2 Arian fiat
ALL Albanian lek 2 Arian fiat
AMD Armenian dram 2 Arian fiat
ANG Netherlands Antillean guilder 2 Arian fiat
AOA Angolan kwanza 2 Arian fiat
ARS Argentine peso 2 Arian fiat
AUD Australian dollar 2 Arian fiat
AWG Aruban florin 2 Arian fiat
AZN Azerbaijani manat 2 Arian fiat
BAM Bosnia and Herzegovina convertible mark 2 Arian fiat
BBD Barbados dollar 2 Arian fiat
BDT Bangladeshi taka 2 Arian fiat
BGN Bulgarian lev 2 Arian fiat
BHD Bahraini dinar 3 Arian fiat
BIF Burundian franc 2 Arian fiat
BMD Bermudian dollar 2 Arian fiat
BND Brunei dollar 2 Arian fiat
BOB Boliviano 2 Arian fiat
BRL Brazilian real 2 Arian fiat
BSD Bahamian dollar 2 Arian fiat
BTN Bhutanese ngultrum 2 Arian fiat
BWP Botswana pula 2 Arian fiat
BYN Belarusian ruble 2 Arian fiat
BZD Belize dollar 2 Arian fiat
CAD Canadian dollar 2 Arian fiat
CDF Congolese franc 2 Arian fiat
CHF Swiss franc 2 Arian fiat
CLP Chilean peso 2 Arian fiat
CNY Renminbi (Chinese) yuan 2 Arian fiat
COP Colombian peso 2 Arian fiat
CRC Costa Rican colon 2 Arian fiat
CUC Cuban convertible peso 2 Arian fiat
CUP Cuban peso 2 Arian fiat
CVE Cape Verde escudo 2 Arian fiat
CZK Czech koruna 2 Arian fiat
DJF Djiboutian franc 2 Arian fiat
DKK Danish krone 2 Arian fiat
DOP Dominican peso 2 Arian fiat
DZD Algerian dinar 2 Arian fiat
EGP Egyptian pound 2 Arian fiat
ERN Eritrean nakfa 2 Arian fiat
ETB Ethiopian birr 2 Arian fiat
EUR Euro 2 Arian fiat
FJD Fiji dollar 2 Arian fiat
FKP Falkland Islands pound 2 Arian fiat
GBP Pound sterling 2 Arian fiat
GEL Georgian lari 2 Arian fiat
GHS Ghanaian cedi 2 Arian fiat
GIP Gibraltar pound 2 Arian fiat
GMD Gambian dalasi 2 Arian fiat
GNF Guinean franc 0 Arian fiat
GTQ Guatemalan quetzal 2 Arian fiat
GYD Guyanese dollar 2 Arian fiat
HKD Hong Kong dollar 2 Arian fiat
HNL Honduran lempira 2 Arian fiat
HRK Croatian kuna 2 Arian fiat
HTG Haitian gourde 2 Arian fiat
HUF Hungarian forint 2 Arian fiat
IDR Indonesian rupiah 2 Arian fiat
ILS Israeli new shekel 2 Arian fiat
INR Indian rupee 2 Arian fiat
IQD Iraqi dinar 3 Arian fiat
IRR Iranian rial 2 Arian fiat
ISK Icelandic krona 2 Arian fiat
JMD Jamaican dollar 2 Arian fiat
JOD Jordanian dinar 3 Arian fiat
JPY Japanese yen 3 Arian fiat
KES Kenyan shilling 2 Arian fiat
KGS Kyrgyzstani som 2 Arian fiat
KHR Cambodian riel 2 Arian fiat
KMF Comoro franc 2 Arian fiat
KPW North Korean won 2 Arian fiat
KRW South Korean won 2 Arian fiat
KWD Kuwaiti dinar 3 Arian fiat
KYD Cayman Islands dollar 2 Arian fiat
KZT Kazakhstani tenge 2 Arian fiat
LAK Lao kip 2 Arian fiat
LBP Lebanese pound 2 Arian fiat
LKR Sri Lankan rupee 2 Arian fiat
LRD Liberian dollar 2 Arian fiat
LSL Lesotho loti 2 Arian fiat
LYD Libyan dinar 3 Arian fiat
MAD Moroccan dirham 2 Arian fiat
MDL Moldovan leu 2 Arian fiat
MGA Malagasy ariary 2 Arian fiat
MKD Macedonian denar 2 Arian fiat
MMK Myanmar kyat 2 Arian fiat
MNT Mongolian togrog 2 Arian fiat
MOP Macanese pataca 2 Arian fiat
MRU Mauritanian ouguiya 2 Arian fiat
MUR Mauritian rupee 2 Arian fiat
MVR Maldivian rufiyaa 2 Arian fiat
MWK Malawian kwacha 2 Arian fiat
MXN Mexican peso 2 Arian fiat
MYR Malaysian ringgit 2 Arian fiat
MZN Mozambican metical 2 Arian fiat
NAD Namibian dollar 2 Arian fiat
NGN Nigerian naira 2 Arian fiat
NIO Nicaraguan cordoba 2 Arian fiat
NOK Norwegian krone 2 Arian fiat
NPR Nepalese rupee 2 Arian fiat
NZD New Zealand dollar 2 Arian fiat
OMR Omani rial 3 Arian fiat
PAB Panamanian balboa 2 Arian fiat
PEN Peruvian sol 2 Arian fiat
PGK Papua New Guinean kina 2 Arian fiat
PHP Philippine peso 2 Arian fiat
PKR Pakistani rupee 2 Arian fiat
PLN Polish zloty 2 Arian fiat
PYG Paraguayan guarani 2 Arian fiat
QAR Qatari riyal 2 Arian fiat
RON Romanian leu 2 Arian fiat
RSD Serbian dinar 2 Arian fiat
RUB Russian ruble 2 Arian fiat
RWF Rwandan franc 2 Arian fiat
SAR Saudi riyal 2 Arian fiat
SBD Solomon Islands dollar 2 Arian fiat
SCR Seychelles rupee 2 Arian fiat
SDG Sudanese pound 2 Arian fiat
SEK Swedish krona/kronor 2 Arian fiat
SGD Singapore dollar 2 Arian fiat
SHP Saint Helena pound 2 Arian fiat
SLL Sierra Leonean leone 2 Arian fiat
SOS Somali shilling 2 Arian fiat
SRD Surinamese dollar 2 Arian fiat
SSP South Sudanese pound 2 Arian fiat
STN Sao Tome and Pricipe dobra 2 Arian fiat
SVC Salvadoran colon 2 Arian fiat
SYP Syrian pound 2 Arian fiat
SZL Swazi lilangeni 2 Arian fiat
THB Thai baht 2 Arian fiat
TJS Tajikistani somoni 2 Arian fiat
TMT Turkmenistan manat 2 Arian fiat
TND Tunisian dinar 3 Arian fiat
TOP Tongan paanga 2 Arian fiat
TRY Turkish lira 2 Arian fiat
TTD Trinidad and Tobago dollar 2 Arian fiat
TWD New Taiwan dollar 2 Arian fiat
TZS Tanzanian shilling 2 Arian fiat
UAH Ukrainian hryvnia 2 Arian fiat
UGX Ugandan shilling 0 Arian fiat
USD United States dollar 2 Arian fiat
UYU Uruguayan peso 2 Arian fiat
UZS Uzbekistan som 2 Arian fiat
VES Venezuelan bolivar soberano 2 Arian fiat
VND Vietnamese dong 2 Arian fiat
VUV Vanuatu vatu 0 Arian fiat
WST Samoan tala 2 Arian fiat
XAF CFA franc BEAC 3 Arian fiat
XCD East Caribbean dollar 2 Arian fiat
XOF CFA franc BCEAO 2 Arian fiat
XPF CFP franc (franc Pacifique) 3 Arian fiat
XTS Codau a neilltuwyd yn benodol at ddibenion profi 2 Cod wedi'i gadw
XXX Y codau a neilltuwyd ar gyfer trafodion lle nad oes arian cyfred yn ymwneud 2 Cod wedi'i gadw
YER Yemeni rial 2 Arian fiat
ZAR South African rand 2 Arian fiat
ZMW Zambian kwacha 2 Arian fiat
ZWL Zimbabwean dollar 2 Arian fiat