Բոլոր հոդվածները
2 հունիսի 2026 թ. · 1 րոպե ընթերցում

Ինտեգրեք Paynet checkout-ը 15 րոպեում

Մշակողի ուղեցույց. վերցրեք Ձեր թեստային API բանալին, մեկնարկեք վճարում, վերահղեք checkout-ի էջ և ստուգեք webhook-ը՝ թեստային քարտերով, որ ոչ մի իրական գումար չշարժվի։

Այս ուղեցույցը Ձեզ կտանի զրոյից մինչև աշխատող վճարում մոտ տասնհինգ րոպեում։ Դուք կստեղծեք վճարում, կուղղեք գնորդին checkout-ի էջ և կհաստատեք արդյունքը webhook-ի միջոցով, ամեն ինչ թեստային ռեժիմում, այնպես որ ոչ մի իրական գումար չի շարժվի։

1. Ստացեք թեստային API բանալի

Paynet-ի յուրաքանչյուր հաշիվ սկսվում է Default անունով թեստային API բանալիով։ Այն կգտնեք Ձեր վահանակի API բանալիներ բաժնում, որտեղ կարող եք նաև նորը ստեղծել։ Թեստային բանալիները սկսվում են sk_test_-ով, և դրանցով արված յուրաքանչյուր վճարում sandbox վճարում է. ոչ մի բանկի հետ կապ չի հաստատվում, ոչինչ չի գանձվում, և հաստատված դոմեն դեռ պետք չէ։

2. Ստեղծեք վճարում

Ուղարկեք մեկ հարցում՝ գումարով (հայկական դրամով), Ձեր պատվերի ID-ով և գնորդին վերադարձնելու հասցեով.

curl https://paynet.am/api/v1/payments \
  -H "X-Paynet-Key: sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "AMD",
    "order_id": "ORD-1001",
    "return_url": "https://shop.am/return",
    "callback_url": "https://shop.am/webhooks/paynet"
  }'

processor դաշտը պարտադիր չէ։ Եթե այն չուղարկեք, գնորդը վճարման եղանակը կընտրի hosted checkout-ի էջում։ Պատասխանը պարունակում է checkout_url։ Վերահղեք գնորդին այնտեղ։

3. Օգտագործեք թեստային քարտերը

Sandbox checkout-ում քարտի համարն է որոշում արդյունքը.

  • 4111 1111 1111 1111 - հաստատված
  • 4000 0000 0000 0002 - մերժված
  • 4000 0000 0000 0069 - անբավարար միջոցներ
  • 4000 0000 0000 0119 - պրոցեսորի սպասման ժամկետը լրացել է

Ժամկետը, CVV-ն և քարտապանի անունը չեն ստուգվում, ուստի մուտքագրեք ցանկացած արժեք։

4. Ստուգեք webhook-ը

Երբ վճարումը հասնում է վերջնական կարգավիճակի, Paynet-ը POST-ով ուղարկում է ստորագրված payload Ձեր callback_url-ին։ Paynet-ն ուղարկում է երկու իրադարձություն.

  • transaction.status.updated - վճարումը հասել է վերջնական կարգավիճակի՝ completed, failed կամ expired։
  • payment.refunded - վերադարձը կատարվել է։ Այդ դեպքում body-ն պարունակում է նաև refund օբյեկտ։

Ավարտված sandbox վճարումն այսպիսին է (կրճատված).

{
  "delivery_id": "...",
  "event": "transaction.status.updated",
  "livemode": false,
  "timestamp": "2026-06-02T09:00:00+04:00",
  "transaction": { "uuid": "...", "order_id": "ORD-1001", "status": "completed", "amount": 5000, "currency": "AMD" }
}

Որոշումը կայացրեք ըստ իրադարձության անվան և transaction.status դաշտի, ոչ թե ամեն արդյունքի համար առանձին իրադարձության սպասելով։ Նախ ստուգեք X-Paynet-Signature վերնագիրը. դա request-ի հում body-ի hex HMAC-SHA256-ն է՝ հաշված այն կայքի webhook secret-ով, որի վրա գրանցված է վճարումը (Կայքեր բաժին, webhook կոճակ, «Ցուցադրել գաղտնի բանալին»)։ Թեստային վճարման դեպքում, քանի դեռ Ձեր սեփական հաստատված կայքը չունեք, դա Ձեր Paynet-ի վճարման էջն է՝ m գումարած Ձեր հաշվի համարը .pay.paynet.am։ Ստորագրության ստուգումը միակ քայլն է, որը երբեք չպետք է բաց թողնել։ Ապա կրկնությունները զտեք ըստ delivery_id-ի և վճարումը հետ կարդացեք GET /api/v1/orders/{order_id}/payment-ով, նախքան պատվերը վճարված նշելը։

5. Անցեք կենդանի ռեժիմի

Կենդանի վճարումների համար պետք են մի քանի բան. հաստատված դոմեն Ձեր return_url-ի և callback_url-ի համար, հաստատված բիզնես և իրական մատակարար (ARCA, Idram կամ Telcell), որը միացված և ակտիվացված է այդ դոմենի համար։ Ապա թեստային բանալին փոխարինեք կենդանի բանալիով (sk_live_)։ Կոդի նույն ճանապարհը, որը հենց նոր թեստավորեցիք, աշխատում է production-ում, վերաշարադրում պետք չէ։