Számlázási fizetési rendszer kapcsolat dokumentációja instantcms

A számlázási rendszer moduláris rendszert használ a fizetési rendszerekkel való integráció érdekében. Új rendszer csatlakoztatásához meg kell adnia egy modulot.

Válasszon rendszernevet

Minden számlázási fizetési rendszer rendelkezik egy rendszernévvel, amely egy latin szóból és számjegyből állhat. A rendszer nevét fájl- és osztálynevekben használják.

Példaként azt feltételezzük, hogy az új fizetési rendszerünket "Új fizetési rendszer" -nek nevezzük, és a rendszer neve új fizetés. Itt és tovább, az újdonságot ki kell cserélni a fizetési rendszer rendszernévével.

Fájlok és mappák

A fizetési rendszerek moduljai a rendszer / vezérlők / számlázási / rendszerkonfigurációban tárolódnak. A mappában belül létre kell hoznia egy mappát az új fizetési rendszer számára. A mappa neve megegyezik a rendszer nevével.

A rendszer mappában két PHP-fájlt kell létrehozni:

A fizetési rendszer beállításainak formáját tartalmazó fájl.

A fizetési űrlap mezőinek listája

Általában bármely rendszer fizetése a fizetési űrlapnak egy speciális URL-hez történő küldésével kezdődik. a rendszer által biztosított. Ezt az URL-t a rendszerbeállítások a számlázási admin panelben adják meg. Az űrlap dinamikusan generálódik.

Amikor a felhasználó feltölti az egyensúlyt, először kiválasztja a megvásárolni kívánt valuta mennyiségét, és megnyomja a "Folytatás" gombot. Ezután az oldalra "Ellenőrizze a megrendelés helyességét". Valójában ez az oldal azért szükséges, mert megjeleníti a fizetési űrlapot. A "Tovább a fizetés" gombra kattintva elküldi a fizetési űrlapot a kívánt URL-címre.

A getPaymentFormFields () metódus egy mezőkészletet ad vissza, amelyet a fizetési űrlaphoz csatolnak. Ez a készlet egyedülálló minden rendszer számára. A készletet tömbként adja vissza, amelyben a kulcsok a mezők nevei, és az elemek az értékek.

Például, ha fizetési rendszerünk a shop_id és summ mezők létezését igényli. akkor a módszer így néz ki:

Emellett interaktív mezőket is felvehet a fizetési űrlapra, amelyek értékeit a felhasználónak be kell töltenie. Ebben az esetben a visszatért tömbben lévő mező értéke a mezőosztály egy példánya. Például:

Az adatok további feldolgozása a fizetési űrlap után

Egyes fizetési rendszerek kifinomultabb mechanizmusokat használnak a fizetés megkezdéséhez, mint egy egyszerű űrlap benyújtás. Ezért lehetséges, hogy a fizetési rendszer modul teljes ellenőrzést biztosítson fizetési kérelem elküldésére.

A program három szakaszban valósul meg:

A rendszerbeállítások fizetési URL-címeként meg kell adnia a következőket: számlázás / felkészítés / újfizetés;

A fizetési űrlap még mindig létrejön, de a rendszer már nem a rendszerhez, hanem a belső URL-hez továbbítja. fent említettek;

Ezt az URL-t az osztályunkban lévő preparePayment () módszer indítja el, és ez a módszer függetlenül kommunikál a tényleges fizetési rendszerrel (például a CURL használatával) és átirányítja, ha szükséges.

Ezt a rendszert akkor alkalmazzák, ha:

Példák a leírt megközelítés végrehajtására a Test és Qiwi rendszerek kódmoduljaiban a szabványos számlázási kézbesítéssel kapcsolatban.

A fizetési URL újradefiniálása

Egyes fizetési rendszerek dinamikus URL-címet használnak a fizetés elküldéséhez. Akkor nem lehet csak megadni a beállításokban, mert minden egyes kifizetésnél más lesz.

Pontosabban ebben az esetben a getPaymentURL () metódus leírható az osztályban. amely visszaküldi a fizetési űrlap elküldésének URL-címét. Ha ez a módszer nem érhető el, használja az URL-t a fizetési rendszer beállításaitól.

Példa egy módszerre az OnPay rendszer moduljából:

Fizetési értesítést kap

A legtöbb fizetési rendszer képes jelenteni a megrendelés kifizetését, ha egy adott URL-t hív az áruház webhelyén. Leggyakrabban a kereskedők beállításaiban az Eredmény URL-je vagy az Állapot URL-címe. Az URL-hez tartozó hívás a háttérben jelenik meg, láthatatlanul a felhasználóhoz és a böngésző használata nélkül.

Amikor ezt az URL-t a rendszermodul osztályban hívják, elindul a processPayment () eljárás.

A módszeren belül a következő algoritmus kerül végrehajtásra:

A fizetési rendszer által átvitt adatokat (megrendelés számát, összegét, fizetési státusát stb.) Kapjuk;

A rendelési szám alapján a megrendelésről információt kapunk az adatbázisból;

Ellenőrizzük az adatok helyességét (a megbízás összege nem változik, a digitális aláírás megegyezik stb.);

Ha minden helyes - jelölje meg a megrendelést mint fizetett (a felhasználó belső pénzneme a megvásárolt belső pénznemhez kerül jóváírásra);

A választ a fizetési rendszer által megkövetelt formátumban adjuk vissza.

Az egyes fizetési rendszernek az Eredmény URL-hez küldött adatai egyediek. A leírásuk megtalálható a fizetési rendszer API-jában található dokumentációban. A kérés (GET / POST) adatainak fogadása az $ request object használatával történik. például:

Az ismert azonosítóhoz tartozó rendelés beszerzése a modell használatával történik:

A megbízás "fizetett" állapotának megváltoztatása a modell használatával történik:

Példa a Robokassa rendszer bevezetésének módjára:

Kapjon sikeres fizetési értesítést

Ezért a hibák elkerülése érdekében a siker URL-címén meg kell győződnünk arról, hogy a megrendelés kifizetése és a felhasználó egyenlege feltöltött. Ha nem, akkor kényszerítse a felhasználót arra, hogy várjon, amíg a webhely értesítést kap a fizetésről.

Mivel a rendelési szám a sikeres URL-hez a felhasználóhoz tartozik, a módszert a fizetési rendszer moduljában kell meghatározni:

Ennek a módszernek a $ request objektumtól kell megkapnia a fizetési rendszer által a siker URL-hez átvezetett rendelésazonosító értékét. és visszaadja. A fogadott azonosító számlázás használatával meg fogja találni a rendelést és ellenőrizni tudja annak állapotát. Ha a megrendelés még mindig nem fizetett, a számlázás pillanatnyilag másodpercenként ellenőrizni fogja annak állapotát, amíg be nem érkezik a fizetési értesítés. A felhasználó meg fogja jeleníteni a várakozási kérelmet.

Fizetési hiba értesítést kap

A kifizetési rendszer moduljaira nem szükséges további műveletek végrehajtása a sikertelen kifizetések feldolgozásához.

Csatlakozási példák

Példák a több fizetési rendszer modul megvalósítására: a számlázási csomagban található rendszer / vezérlők / számlázási / rendszert tartalmazó mappák.

Kapcsolódó cikkek