Ուղեցույց
Ստեղծել վճարում
$result = pspg_create_payment(
'arca_idbank',
array(
'amount' => '10.00',
'currency' => 'AMD',
'return_url' => home_url( '/callback' ),
'description' => 'Order #1001',
'source' => 'custom',
'source_id' => 1001,
'clientId' => '2', // եթե ցանկանում եք կապել քարտը և բանկը դա աջակցում է
)
);
Սպասվող պատասխան՝
{
"ok": true,
"bank": "arca_idbank",
"bank_ids": {
"primary": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"orderId": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"currency_code": "051",
"test_mode": 1,
"is_binding": 0
},
"status": "registered",
"redirect_url": "https://ipaytest.arca.am:8445/payment/merchants/planet/payment_en.html?mdOrder=f9baddf9-29bd-4f21-99f8-81fef9c60758",
"raw": {
"errorCode": 0,
"orderId": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"formUrl": "https://ipaytest.arca.am:8445/payment/merchants/planet/payment_en.html?mdOrder=f9baddf9-29bd-4f21-99f8-81fef9c60758",
"errorCodeString": "0",
"error": false
},
"summary": {
"action": "create_payment",
"code": 0,
"message": null,
"details": null
},
"pspg_order_id": 454
}
Ինչ է նշանակում՝
ok— վճարումը հաջողությամբ ստեղծվել էbank— bank idbank_ids.primary— հիմնական bank id, պահեք այս արժեքըbank_ids.orderId— բանկի պատվերի idbank_ids.currency_code— թվային ISO արժույթ (օրինակ՝051 = AMD)bank_ids.test_mode— test/live ռեժիմbank_ids.is_binding— սա binding վճարում չէ, հետևաբար0status = registered— վճարումը ստեղծված է, բայց օգտատերը դեռ չի ավարտել վճարումըredirect_url— օգտատիրոջը պետք է ուղղորդել այս URLraw— բանկի հում պատասխանsummary— կարճ ամփոփումpspg_order_id— ներքին PSPG գրառումwp_pspg_orders-ում
Ստանալ վճարման կարգավիճակը
Օգտագործեք սա, երբ օգտատերը վերադառնում է բանկից կամ callback-ից հետո։ pspg_sync_status()-ը հանդիսանում է վերջնական կարգավիճակի աղբյուրը։
$result = pspg_sync_status(
'arca_idbank',
array(
'pspg_order_id' => 454,
'orderId' => 'f9baddf9-29bd-4f21-99f8-81fef9c60758',
'currency' => 'AMD',
'params' => $_REQUEST,
)
);
Սպասվող պատասխան՝
{
"ok": true,
"bank": "arca_idbank",
"bank_ids": {
"primary": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"orderId": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"test_mode": 1
},
"bank_status": 2,
"status": "paid",
"raw": {
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "TEST-L3-454",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "Request processed successfully",
"amount": 1000,
"currency": "051",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 1000,
"depositedAmount": 1000,
"refundedAmount": 0
},
"cardAuthInfo": {
"expiration": "202708",
"cardholderName": "ARA MARGARYAN",
"approvalCode": "817644",
"pan": "518180**7963"
},
"error": false
},
"summary": {
"action": "sync_status",
"code": 0,
"message": "Success",
"details": "Request processed successfully"
},
"binding": {
"pan": "518180**7963",
"expiration": "202708"
},
"pspg_order_id": 454
}
Ինչ է նշանակում՝
bank_status— բանկի թվային կարգավիճակstatus— PSPG նորմալացված կարգավիճակstatus = paid— վճարումը հաջողությամբ ավարտված էbinding— քարտի կամ binding տվյալներ (եթե բանկը վերադարձրել է)pspg_order_id— նույն PSPG գրառումը
Հնարավոր status արժեքներ՝
registeredpendingauthorizedpaidfailedrefundedvoidedunknown
Վերադարձ (Refund)
$result = pspg_refund_payment(
'arca_idbank',
array(
'pspg_order_id' => 454,
'orderId' => 'f9baddf9-29bd-4f21-99f8-81fef9c60758',
'amount' => '1.00', // optional
'currency' => 'AMD',
)
);
Սպասվող պատասխան՝
{
"ok": true,
"bank": "arca_idbank",
"bank_ids": {
"primary": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"orderId": "f9baddf9-29bd-4f21-99f8-81fef9c60758",
"test_mode": 1,
"currency_code": "051"
},
"bank_status": null,
"status": "refunded",
"raw": {
"errorCode": "0",
"errorMessage": "Success",
"error": false
},
"summary": {
"action": "refund_payment",
"code": "0",
"message": "Success",
"details": null
},
"binding": null,
"pspg_order_id": 454
}
Ինչ է նշանակում՝
status = refunded— բանկը ընդունել է վերադարձըbank_status = null— բանկը միշտ չի վերադարձնում վերջնական կարգավիճակը- Եթե անհրաժեշտ է վերջնական կարգավիճակը՝ կանչեք
pspg_sync_status()
Չեղարկել / Հակադարձել վճարումը
$result = pspg_void_payment(
'arca_idbank',
array(
'pspg_order_id' => 454,
'orderId' => 'f9baddf9-29bd-4f21-99f8-81fef9c60758',
'currency' => 'AMD',
)
);
Հնարավոր սխալի պատասխան՝
{
"ok": false,
"bank": "arca_idbank",
"error": "bank_error",
"message": "Reversal is impossible for current transaction state",
"bank_error_code": "7",
"raw": {
"errorCode": "7",
"errorMessage": "Reversal is impossible for current transaction state",
"error": true
},
"pspg_order_id": 454
}
Ինչ է նշանակում՝
ok = false— գործողությունը ձախողվել էmessage— բանկի սխալի հաղորդագրությունbank_error_code— բանկի սխալի կոդvoidաշխատում է միայն մինչև վճարումը վերջնական դառնալը- Ավարտված վճարումների համար օգտագործեք
refund
Կապել քարտ (սկզբնական վճարում)
Եթե ցանկանում եք հետագայում օգտագործել նույն քարտը, փոխանցեք clientId։
clientId-ը ձեր ներքին հաճախորդի նույնականացուցիչն է, օրինակ՝
- user id
- customer id
- profile id
Այնուհետև կանչեք pspg_sync_status() վճարումը հաջող ավարտվելուց հետո։
$result = pspg_sync_status(
'arca_idbank',
array(
'pspg_order_id' => 456,
'orderId' => '3b2a2c1b-a850-4edd-abf9-bb2a36e1078a',
'currency' => 'AMD',
'params' => $_REQUEST,
)
);
Սպասվող պատասխան՝
{
"ok": true,
"bank": "arca_idbank",
"bank_status": 2,
"status": "paid",
"binding": {
"binding_id": "97578600-85f8-4f9a-a0f0-eae2be595287",
"client_id": "2",
"pan": "518180**7963",
"expiration": "202708"
},
"pspg_order_id": 456
}
Ինչ է նշանակում՝
binding.binding_id— token / binding id, պահեք այս արժեքըbinding.client_id— client id, որը վերադարձրել է բանկըpan,expiration— քարտի տվյալներ
Վճարել պահպանված քարտով
Եթե արդեն ունեք binding_id և անհրաժեշտության դեպքում clientId, կարող եք կատարել վճարում պահպանված քարտով։
$result = pspg_charge_saved_card(
'arca_idbank',
array(
'amount' => '20.00',
'currency' => 'AMD',
'binding_id' => '97578600-85f8-4f9a-a0f0-eae2be595287',
'clientId' => '2',
'return_url' => home_url( '/callback' ),
'description' => 'Recurring payment',
'source' => 'custom',
'source_id' => 1003,
)
);
Սպասվող պատասխան՝
{
"ok": true,
"bank": "arca_idbank",
"bank_ids": {
"orderId": "4b7fc2e0-8f3c-43cf-a59b-e88fa8ff5f72",
"test_mode": 1,
"currency_code": "051",
"is_binding": 1,
"primary": "4b7fc2e0-8f3c-43cf-a59b-e88fa8ff5f72"
},
"status": "paid",
"bank_status": 2,
"binding": {
"binding_id": "97578600-85f8-4f9a-a0f0-eae2be595287",
"client_id": "2",
"pan": "518180**7963",
"expiration": "202708"
},
"pspg_order_id": 458
}
Ինչ է նշանակում՝
bank_ids.is_binding = 1— սա binding վճարում էpspg_order_id— նոր PSPG գրառում նոր վճարման համարbinding_id— նույն պահպանված binding token- Կարող եք փոխանցել
clientIdկամclient_id
Հասանելի bank ID-ներ
ameria— Ameriabankineco— Inecobankamio— AMIO Bankarca_acba— ACBA Bank (ArCa)arca_ararat— Araratbank (ArCa)arca_armeconombank— Armeconombank (ArCa)arca_armswiss— Armswissbank (ArCa)arca_ardshin— Ardshinbank (ArCa)arca_byblos— Byblos Bank Armenia (ArCa)arca_converse— Converse Bank (ArCa)arca_evoca— Evocabank (ArCa)arca_fastbank— Fast Bank (ArCa)arca_idbank— IDBank (ArCa)
Ինչ պահպանել ձեր նախագծում
Պահպանել նվազագույնը՝
$result['pspg_order_id']
$result['bank_ids']['primary']
Եթե օգտագործում եք binding, նաև պահպանեք՝
$result['binding']['binding_id']
$result['binding']['client_id']
Կարևոր
- Միշտ հիմնվեք
ok,status,bank_status,bank_ids.primary, ևpspg_order_idդաշտերի վրա - Օգտագործեք
rawևsummaryդաշտերը debug-ի և լոգերի համար - Եթե անհրաժեշտ է վերջնական կարգավիճակը refund կամ void-ից հետո՝ կանչեք
pspg_sync_status()
