HTML, Excel, Word, SEOÂåá-ïðîãðàììèíã ⇒ Ñêðèïò ïðèåìà-îòïðàâêè Èíòåðíåò-ïëàòåæåé

Ïðàêòè÷åñêèå ïðèìåðû

Ïðèìåðû âåá-ïðîãðàììèðîâàíèÿ
· Èíòåðíåò-ïëàòåæè
· Àâòîðèçàöèÿ êëèåíòñêîé îïëàòû
· Çàùèòà îò óÿçâèìîñòè sql-injection
· Êàê ïîëüçîâàòüñÿ Google Analytics
· Ýëåêòðîííàÿ êîììåðöèÿ â Google Analytics
· Èñïîëüçîâàíèå Google Analitycs äëÿ split òåñòèðîâàíèÿ
Ñàéò îò À äî ß
· Ñ ÷åãî íà÷àòü
· ÏÎ äëÿ ñàéòà
· Äîìåí è õîñòèíã
· Ñòðóêòóðà ñàéòà
· Ãëàâíàÿ ñòðàíèöà
· Ôîí ñòðàíèöû
· Àíàëèç ãëàâíîé ñòð
· Ðåãèñòðàöèÿ ñàéòà
· Âåá-ãðàôèêà

 

Ñêðèïò ïðèåìà-îòïðàâêè Èíòåðíåò-ïëàòåæåé


Àâòîð: Èâàí Êîðæàâèí
email: korjavin@yandex.ru

Âî âðåìÿ âçðûâíîãî ðîñòà èíòåðíåò-òîðãîâëè, ïðîãðàììèñòàì èíòåðíåò ìàãàçèíîâ, ÷àñòî ñòàâÿò çàäà÷è îðãàíèçàöèè ïðèåìà ïëàòåæåé îíëàéí.  ýòîé ñòàòüå ìû ðàçáåðåì îäèí èç ñïîñîáîâ îòïðàâêè êëèåíòà ñàéòà, íà ïëàòåæíóþ ñèñòåìó ñ ñôîðìèðîâàííûì çàêàçîì.

Èñõîäíûå äàííûå

Âûáîð ñõåìû âçàèìîäåéñòâèÿ

Ïåðåäà÷à äàííûõ ìåæäó íàøèì ñàéòîì è ïëàòåæíîé ñèñòåìà Moneybookers (è áîëüøèíñòâîì äðóãèõ ñèñòåì) ìîæåò ïðîèñõîäèòü íåñêîëüêèìè ïóòÿìè.

1. Îòïðàâêà ÷åðåç áðàóçåð êëèåíòà, íàçîâåì ýòî c2s (client to server), êîãäà ìû ôîðìèðóåì âñå òðåáóåìûå ïëàòåæíîé ñèñòåìîé ïîëÿ, è îòïðàâëÿåì èõ ðåäèðåêòîì èëè http post/get çàïðîñîì ÷åðåç áðàóçåð êëèåíòà íà èíòåðôåéñ ïëàòåæíîé ñèñòåìû.


Ýòîò ñïîñîá î÷åíü ïðîñò äëÿ ðåàëèçàöèè, ìîæíî îáîéòèñü îäíîé html ôîðìîé, êîòîðàÿ ñîáåðåò è îòïðàâèò äàííûå. Íî â òàêîì ñëó÷àå, ìû íå ìîæåì áûòü óâåðåíû, ÷òî äàííûå äîéäóò äî ïëàòåæíîé ñèñòåìû â íåèçìåííîì ñîñòîÿíèè. Åñëè êëèåíò-çëîóìûøëåííèê çàõî÷åò, îí ñìîæåò ïîäìåíèòü, ê ïðèìåðó, ñóììó ïëàòåæà.


Äëÿ áîðüáû ñ ïîäìåíîé, ñóùåñòâóåò ñïîñîá "ïîäïèñè" îòïðàâëÿåìûõ äàííûõ.


Êàê âàðèàíò, íàø èíòåðíåò ìàãàçèí è ïëàòåæíàÿ ñèñòåìà, çàðàíåå, íà ýòàïå ðåãèñòðàöèè äîãîâîðà, îáìåíÿëèñü íåêèì ñåêðåòíûì êëþ÷îì, è àëãîðèòìîì ôîðìèðîâàíèÿ ïîäïèñè. Íàïðèìåð,

    Ïîäïèñü = md5( ñåêðåòíûé êëþ÷ + ñóììà ïëàòåæà + íîìåð çàêàçà )

Òîãäà ïðè ôîðìèðîâàíèè ïîëåé äëÿ îòïðàâêè íà îïëàòó, ìû ìîæåì ðàññ÷èòàòü ýòó ïîäïèñü, è äîáàâèòü åå ê çàïðîñó â áðàóçåð êëèåíòà.


Ýòî óñëîæíÿåò ñõåìó, ìû óæå íå ìîæåì îòïðàâèòü êëèåíòà íà ïðÿìóþ ñ html ôîðìû íà ïëàòåæíóþ ñèñòåìó, ìû äîëæíû ïîëó÷èòü ýòè äàííûå, ñôîðìèðîâàòü ïîäïèñü îòâåò è ïåðåäàòü êëèåíòó äëÿ ïåðåõîäà.


Îáðàòèòå âíèìàíèå, ÷òî íè ïðè êàêèõ óñëîâèÿõ ìû íå äîëæíû ïåðåäàâàòü ñåêðåòíûé êëþ÷ êóäà ëèáî çà ïðåäåëû íàøåãî ñåðâåðíîãî êîäà.


Áîëüøîé îøèáêîé áóäåò ïåðåäàòü åãî, íàïðèìåð, ñêðûòûì ïàðàìåòðîì â ôîðìå, è ïîïûòàòüñÿ ñäåëàòü ïîäïèñü ñ ïîìîùüþ java script êîäà âûïîëíÿåìîãî â êëèåíòñêîì áðàóçåðå. Ïðè òàêîì ïîäõîäå, è êëþ÷, è àëãîðèòì ñòàíåò äîñòóïåí çëîóìûøëåííèêó ò.å. ñêîìïðîìåòèðîâàí.


2. Ðàçäåëåíèå çàïðîñà íà äâå ÷àñòè, íàçîâåì ýòîò ñïîñîá s2s (server to server), â ýòîì ñëó÷àå ìû îòïðàâëÿåì ñåêðåòíûå äàííûå ìåæäó ñâîèì ñåðâåðîì è èíòåðôåéñîì ïëàòåæíîé ñèñòåìû íàïðÿìóþ, ïëàòåæíàÿ ñèñòåìà ðåãèñòðèðóåò ýòó îòïðàâêó, ïðèñâàèâàåò åé êîä (ticket) è óæå åãî ìû ïåðåäàåì êëèåíòó.


Êîãäà êëèåíò îáðàòèòñÿ â ïëàòåæíóþ ñèñòåìó, è ïðåäúÿâèò åé êîä, ïëàòåæíàÿ ñèñòåìà "óçíàåò" åãî, è ïðèìåò ïëàòåæ ïî óæå çàïîëíåííûì äàííûì.


Èç ïëþñîâ ýòîãî ñïîñîáà ñðàçó æå ìîæíî îòìåòèòü, ÷òî ñåêðåòíûå äàííûå íå ïîïàäàþò íà êîìïüþòåð êëèåíòà, è ïîýòîìó íå ìîãóò áûòü ïîääåëàíû. Âñÿ èíôîðìàöèÿ, êîòîðàÿ äîñòóïíà çëîóìûøëåííèêó - ýòî êîä ñåññèè, ïîäìåíÿòü êîòîðûé áåññìûñëåííî. Äàæå åñëè îí óãàäàåò, êàêîé ëèáî äðóãîé êîä ñåññèé îí ïðîñòî îïëàòèò ÷óæîé çàêàç.


Âòîðûì ïëþñîì, ñëåäóåò îòìåòèòü, ÷òî ìû íå ïåðåäàåì ëèøíèõ äàííûõ â áðàóçåð êëèåíòó, óìåíüøàåì íåíóæíûé îáìåí òðàôèêîì, è íå çàâèñèì îò íàñòðîåê êëèåíòñêîãî áðàóçåðà.


 ýòîé ñòàòüå, ÿ ïîêàæó, êàê ðåàëèçîâàòü âòîðîé ñïîñîá - s2s. Ñîâåòóþ âàì èñïîëüçîâàòü åãî.

Ôîðìà îïëàòû

Ïóñòü, íàø ïîëüçîâàòåëü óæå èìååò íåêóþ ñôîðìèðîâàííóþ êîðçèíó â íàøåì èíòåðíåò ìàãàçèíå.


Òàêèì îáðàçîì, ìû çíàåì ñóììó, âàëþòó, è e-mail ïîëüçîâàòåëÿ.


Ïîêàæåì åìó html ôîðìó, ãäå îí ìîæåò îñòàâèòü ïðîèçâîëüíûé êîììåíòàðèé (íàïðèìåð, î ïðåäïî÷èòàåìîì ñïîñîáå äîñòàâêè) è ñâîé e-mail, êóäà ìû áóäåì óâåäîìëÿòü åãî î ñîñòîÿíèè åãî çàêàçà.

Îáðàòèòå, âíèìàíèå, ÷òî ìû âûâîäèì ïîëüçîâàòåëþ äàííûå î åãî çàêàçå, íîìåð è ñóììó çàêàçà, íî íå èñïîëüçóåì èõ â ôîðìå.


 íàøåì êîíòðîëëåðå, ôîðìèðóþùåì çàïðîñ íà ïëàòåæíóþ ñèñòåìó, ìû ñíîâà ïîëó÷èì èõ èç áàçû äàííûõ íàøåãî ìàãàçèíà, òåì ñàìûì èçáåæàâ âîçìîæíîñòè ïîäìåíû.


Ïðîâåðêó äàííûõ ôîðìû ÿ îñòàâëÿþ çà ðàìêàìè ýòîé ñòàòüè, ñ÷èòàåì, ÷òî îíà îáÿçàòåëüíî ïðîâåðÿåòñÿ.

Îáðàáîòêà äàííûõ è îòïðàâêà çàïðîñà s2s

Êîä íàøåãî êîíòðîëëåðà, ïîëó÷àþùåãî äàííûå îò ôîðìû ïîëüçîâàòåëÿ:

Äëÿ ïðîñòîòû îïðåäåëèì íóæíûå íàì êîíñòàíòû ïðÿìî â êîíòðîëëåðå.

Ðàçóìååòñÿ, ÷òî â ðåàëüíîì ïðîåêòå ëó÷øå ñäåëàòü îòäåëüíûé ôàéë ñ íàñòðîéêàìè.


Ôîðìèðóåì äàííûå äëÿ çàïðîñà:

 
 

Òàê êàê íàì íóæåí post çàïðîñ, óêàæåì ýòî â îïöèÿõ çàïðîñà:


 

Ñîçäàäèì êîíòåêñò çàïðîñà , è îòïðàâèì åãî íà ïëàòåæíóþ ñèñòåìó


 

 ïåðåìåííîé $result, ó íàñ ëèáî 32 ñèìâîëüíûé êîä çàðåãèñòðèðîâàííîé îïåðàöèè îïëàòû, èëè äëèííîå ñîîáùåíèå î îøèáêå, â ôîðìàòå html


 

Åñëè æå äëèíà ñòðîêè $result 32 ñèìâîëà, çíà÷èò, ó íàñ åñòü êîä îïåðàöèè, è ìû äîëæíû ïåðåíàïðàâèòü ïîëüçîâàòåëÿ íà ïëàòåæíóþ ñèñòåìó ñ ýòèì êîäîì.

Ïåðåéäÿ ïî ýòîé ññûëêå àâòîìàòè÷åñêè èëè â ðó÷íóþ, ïîëüçîâàòåëü óâèäèò íà ñàéòå moneybookers çàïîëíåííóþ ôîðìó ñ äàííûìè ïëàòåæà, è ñìîæåò îïëàòèòü ñâîé çàêàç îäíèì èç äîñòóïíûõ åìó ñïîñîáîâ.


 çàâèñèìîñòè îò óñïåøíîñòè îïëàòû, ñåðâåð ïåðåíàïðàâèò åãî îáðàòíî ê íàì íà ñàéò íà RETURN_URL èëè CANCEL_URL êîòîðûå ìû óêàçàëè.


Òàêæå ìû ïîëó÷èì e-mail îò ïëàòåæíîé ñèñòåìû î îïëàòå ýòîãî çàêàçà, ñ óêàçàíèåì ïåðåäàííûõ ïîëåé, ñóììû, íîìåðà çàêàçà, êîììåíòàðèÿ è ïðî÷èì.


 ñëåäóþùåé ñòàòüå ìû ðàçáåðåì ñïîñîá àâòîìàòè÷åñêîãî ïîäòâåðæäåíèÿ îïëàòû, è óñòàíîâêè ñòàòóñà çàêàçà.



 íà÷àëî ñòðàíèöû



 íà÷àëî ñòðàíèöû