Prin sistemele de plată din acest articol se înțeleg toate metodele de plată pentru o comandă: ca sisteme de plată acceptând plăți on-line și transferuri bancare etc.
Diferitele sisteme de plăți oferă diferite interfețe pentru integrare (interacțiune). Adesea, aceste interfețe diferă dramatic: de exemplu, integrarea cu sistemul PayFlow Pro necesită executarea cererilor către sistemul de plăți utilizând SDK-ul instalat pe server, iar integrarea cu Banca de Economii necesită o imprimare a chitanței Băncii de Economii. Prin urmare, integrarea cu sistemele de plată se realizează prin intermediul scripturilor php, numite sisteme de procesare a plăților.
Sistemele Manipulatorii de plată (denumite în continuare pur și simplu stivuitoare) sunt stabilite individual pentru fiecare tip de plătitor al fiecărui sistem de plată sub forma sistemului de management de plată (a se vedea. Documentația de utilizare, „Crearea și editarea unui sistem de plată“). La plasarea comenzii, se cheamă unul dintre cei trei agenți care utilizează sistemul de plată selectat de cumpărător pentru tipul de plătitor selectat. Persoanele care administrează sistemele de plată sunt definite prin numele fișierelor:
- payment.php - dacă apelantul este chemat după salvarea efectivă a tuturor parametrilor comenzii din baza de date. Se folosește în componenta standard a procedurii de comandă;
- pre_payment.php - dacă doriți să apelați la procedură de comandă (pentru cei care pot plăti imediat comanda și pentru a returna rezultatul). Se folosește în componenta în două etape a procedurii de comandă;
- action.php - folosit pentru a elimina o anumită sumă de bani din card (numai pentru cei care pot plăti imediat pentru comandă și pentru a returna rezultatul). De exemplu, la reînnoirea unui abonament.
Algoritmul (conținutul) operatorului este determinat în totalitate de interfețele furnizate de sistemul de plăți corespunzător.
Stivuitoare tipice
Un handler tipic pentru un sistem de plăți care nu efectuează plăți on-line. este afișarea unui cont (sau a unei chitanțe) gata pentru imprimare pe imprimantă. Exemple de astfel de operatori sunt contul sau primirea transferului prin Banca de Economii.
Un astfel de handler este de obicei un fișier care afișează formatul necesar pentru acest document și introduce parametrii comenzii în locurile corespunzătoare.
Un exemplu de acest procesor poate fi găsit în șabloanele de sisteme Sberbank de plată (/bitrix/modules/sale/payment/sberbank.php), prin transfer bancar (/bitrix/modules/sale/payment/bill.php).
Un handler tipic pentru un sistem de plăți care efectuează plăți online. este rezultatul unui formular HTML care trimite date către sistemul de plăți. Exemple de astfel de sisteme de plată sunt Assist, AutorizeNet, Payflow, WorldPay.
Forma, setul de câmpuri și alți parametri ai formularului HTML sunt complet dependenți de sistemul de plăți. O descriere specifică a formularului care este solicitat de acest sistem de plăți trebuie să figureze în documentația pentru acest sistem de plăți.
Un exemplu de astfel de procesor poate fi vizualizat în șabloanele sistemele de plăți Assist (/bitrix/modules/sale/payment/assist.php), AuthorizeNet (/bitrix/modules/sale/payment/authorizenet.php), Paypal (/ bitrix / module / vânzare / plata / paypal.php), etc.
Parametrii care sunt necesari de către sistemele de plată pot fi obținuți din parametrii de comandă care sunt disponibili în handlerul din matricea $ arOrder. precum și din valorile proprietăților ordonate, care pot fi obținute după cum urmează:
De obicei, sistemele de plată cu on-line de plată oferind una dintre cele două (uneori ambele) interfață de tip pentru integrare: 1. Formularul de comanda cu parametrii trimise la site-ul sistemului de plată, în cazul în care clientul completează un formular suplimentar (de exemplu, introduce un număr de card de credit) și produce real plata; 2. toți parametrii sunt completați pe site și se face o cerere către sistemul de plăți, ca răspuns la care informează rezultatul plății.
Primul tip de interfață este cel mai ușor de integrat. În handler este suficient să creați un formular HTML care va trimite date către site-ul sistemului de plăți și să adăugați câmpurile necesare pentru sistemul de plăți în formular. Parametrii specifici ar trebui analizați în sistemul de ajutor pentru un anumit sistem de plăți. Un exemplu de astfel de handler poate fi găsit în șablonul sistemului de asistență pentru plăți (/bitrix/modules/sale/payment/assist.php).
Cel de-al doilea tip este mai dificil de integrat, dar este mai flexibil în ceea ce privește capacitățile. Un exemplu de astfel de handler poate fi găsit în șablonul sistemului de plată AutorizeNet (/bitrix/modules/sale/payment/authorizenet.php). Structura generală a codului de manipulare în acest caz poate fi ceva de genul:
În cel de-al doilea caz (interfața de tip 2), modulul magazinului online primește imediat rezultatul operațiunii sistemului de plăți, potrivit pentru prelucrarea ulterioară a comenzii.
În cazul interfeței de tip 1, poate fi convenabil să se ia în mod automat rezultatele sistemului de plăți (dacă comanda este plătită efectiv). Desigur, acest lucru este posibil numai dacă sistemul de plăți oferă interfața corespunzătoare. Detalii despre această interfață se găsesc în documentația pentru sistemul de plăți corespunzător sau în serviciul de asistență tehnică a acestui sistem. Dacă sistemul de plăți furnizează o interfață pentru obținerea statutului de plată pentru o comandă, atunci puteți implementa un script pentru a obține automat aceste stări. Script-ul de mai sus este numit din formularul de gestionare a comenzilor (partea administrativă a site-ului) (a se vedea documentația utilizatorului, secțiunea „Comenzi“) pentru fiecare dintre comenzile plătite cu ajutorul sistemului de plăți. Puteți crea un script nou pentru solicitarea automată a stării de plată după cum urmează:
- Este necesar să creați un fișier de solicitare a statutului în partea publică a site-ului (de exemplu, în / bitrix / php_interface / include / payment / folder). Ca bază, puteți prelua unul din script-urile preinstalate din / bitrix / modules / sale / payment / folder (de exemplu, assist_res.php).
- Este necesar să modificați scriptul astfel încât să se potrivească cu interfața sistemului de plăți.
- Este necesar sub forma parametrilor de editare a sistemului de plăți corespunzătoare (în partea administrativă a site-ului) (A se vedea. Documentația de utilizare, „Crearea și editarea unui sistem de plată“) precizează manipulare sisteme de plată funcționează acest script obține automat starea comenzii.
De multe ori, sistemul de plăți nu oferă o interfață pentru primirea statutului de plată, ci trimite scrisori care indică rezultatul plății. În acest caz, puteți seta automat starea plății în ordine utilizând modulul Poștă. Pentru a face acest lucru, trebuie să creați un handler de e-mail corespunzător și să îl configurați pentru a lucra cu modulul. Detaliile sunt în sistemul de ajutor din modulul Mail (mail).