• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PayPal integracja z własnym serwisem

Object Storage Arubacloud
+2 głosów
1,126 wizyt
pytanie zadane 17 sierpnia 2017 w PHP przez R[a]=d(ek); Mądrala (6,370 p.)

Siemanko ;) 

Potrzebuję zintegrować płatności PayPal ze swoją stroną ale jestem nieco zdezorientowany tym systemem i nie wiem od czego zacząć.. a raczej zacząć to już zacząłem lecz nie wiem jak rozwiązać coś dalej..

Powiem teraz co udało mi się zrobić do tej pory: 

- Założyłem konto + konto developerskie 

- utworzyłem 2 konta w sandboxie (jedno biznesowe drugie zwykły kupujący )

- utworzyłem aplikacje i aplikacja jest "podpięta" do konta biznesowego.  

(mam tu takie dane jak  

Sandbox account: nazwa@nazwa.pl, 

Client ID: <długi_ciąg_znaków> ,

Secret: <kolejny_długi_ciąg_znaków>

)

......

 

Na swojej stronie teraz chciałbym mieć możliwość łatwego kupienia danego produktu..Ten produkt ma ID, NAZWĘ, CENĘ... - wyciągane dynamicznie.. 

I co dalej?? 

 

Użyłem przycisku: 

 


    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">

    <input type="hidden" name="cmd" value="_xclick">

    <input type="hidden" name="form_charset" value="UTF-8">
    <input type="hidden" name="business" value="kontobizneswsandboxie">
    <input type="hidden" name="item_name" value="JAKIS PRODUKT">
    <input type="hidden" name="item_number" value="ID-TEGO-PRODUKTU">
    <input type="hidden" name="amount" value="CENA">
    <input type="hidden" name="currency_code" value="PLN">

  <input type="image" src="http://slomski.us/wp-content/plugins/BetterPay/images/buynow_1.png" alt="Buy Now">
  <img alt="" src="https://paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
  
  <input type="hidden" name="return" value="mojastrona.pl/thanx.php?p=ID-TEGO-PRODUKTU">
  
</form>

 

I tu wszystko fajnie ładnie działa, 

 

Klikam w przycisk kup teraz pokazuję się strona paypal z możliwością zalogowania i zapłacenia. 

Loguje się na konto usera kupującego z sandboxa klikam zapłać i gotowe.. 

Przenosi mnie pod wskazany w formularzu adres na moją strone i tyle.. 

 

-ALEEEE-

 

Co jak ktoś "cwany" wejdzie na moją strone z produktem kliknie sobie "zbadaj element" odszuka tego formularza i zmieni cenę z 50PLN na 1 grosz i kliknie kup teraz? Ano stanie się to że pokaże się strona paypala z możliwością zalogowania się i zapłacenia ale zapłacenia 1 grosza za produkt.. :/ a to jest niepożądane! 

 

 

Czy ktoś byłby w stanie mi wytłumaczyć tak step by step jak mam to poprawnie zrobić/ zwalidować/ sprawdzić czy nikt nie kombinował w formularzu? 

 

Bo jeszcze próbowałem coś z curlem działać ale jakoś coś nie za bardzo mi to chciało chodzić: 

- robiłem instancje curla 

- ustawiałem opcje żeby zapytanie curla wysłane zostało postem 

- ustawiałem pola posta co w formularzu od przycisku są 

i wykonywałem curla ale dostawałem błąd.. 

 

Myślę że opisałem wszystko najlepiej jak sie dało. 

 

Z góry bardzo dziękuję Ci za pomoc! 

 

 

 

1 odpowiedź

+1 głos
odpowiedź 17 sierpnia 2017 przez event15 Szeryf (93,790 p.)
Cena to w ogóle nie powinna być odpowiedzialność frontu. Robisz komuś stronę na zlecenie i już teraz widzę, że zrobisz temu komuś krzywdę.

Powinieneś mieć to zachowane w kodzie PHP, tak aby nikt nie miał żadnego prawa wglądu w pola i zmienne potrzebne do wysłania tych rzeczy. To powinno być ukryte.
komentarz 17 sierpnia 2017 przez R[a]=d(ek); Mądrala (6,370 p.)

Robisz komuś stronę na zlecenie 

To na szczęście jest moj projekt więc jeśli coś to zrobiłbym sobie krzywdę. 

 

 już teraz widzę, że zrobisz temu komuś krzywdę


Właśnie zdaję sobie z tego sprawę (co do tej krzywdy) i dlatego pytam, rozeznaje się w temacie.. 

 

Moj problem jest też taki że ja potrzebuje mieć wszystko dynamiczne - ajax.. 

łącznie z wyborem wariantu produktu np. 

"Szafa narożnikowa":

opcje-kolorystyczne{

czarna, czerwona, szara
}

 

Wybieram sobie wariant szafy i klikam kup. i od razu dostaje okno paypala.. 

 

Chociaż czekaj czekaj...... 

Właśnie wpadłem na coś takiego... Co o tym są myślisz? 

 

Na stronie z produktem wybieram jego jakąś opcje.

Przygotowuję ajax'a { id_produktu, id_opcji } i śle te dane do pliku w którym mam zaimplementowane php sdk paypal... tu odczytuje co to za produkt co za opcja oraz cena.. 

i dopiero "wykonuje paypala"? 

 

 

 

 

 

 

1
komentarz 17 sierpnia 2017 przez event15 Szeryf (93,790 p.)
To nie ma najmniejszego znaczenia.

Generalnie Javascript ajaxowo może wysłać żądanie kupna do serwera, czyli kodu PHP, który jest odpowiednio skonfigurowany i to właśnie on ma w sobie zapisaną cenę zakupu. Następnie ten kod PHP powinien przekazać żądanie do serwisu PayPal. Inaczej wszystko będziesz mieć transparentne i nie ma mowy o zabezpieczeniu się.
komentarz 18 sierpnia 2017 przez R[a]=d(ek); Mądrala (6,370 p.)
Temat ogarnięty.. tak mi się wydaje i wszystko jest "zgodnie ze sztuką"..

Znalazłem 3 fajne, proste filmiki, które pokazują co i jak..

https://www.youtube.com/watch?v=5Zc5JVytoLY

https://www.youtube.com/watch?v=IoJcZT2fvRA

 

https://www.youtube.com/watch?v=BD1dOWIABe0

 

 

Tak w wielkim skrócie...

Tworzymy 2 pliki. Pierwszy w którym będzie generowała się cała płatność i drugi w którym będziemy rozpoznawać czy płatność przeszła czy nie.

 

W każdym z tym plików musimy dołączyć potrzebne klasy i potworzyć odpowiednie instancje. Musimy tez koniecznie zrobić podpięcie się pod nasze konto, aplikacje w paypalu..

$apiContext = new \PayPal\Rest\ApiContext(
        new \PayPal\Auth\OAuthTokenCredential(
            ' ',     // ClientID - podajemy tu wartość z zakładki moja aplikacje
            ' '      // ClientSecret - podajemy tu wartość z zakładki moja aplikacje
        )
);

 

I teraz..

W pliku gdzie tworzymy płatność ustawiamy parametry produktu (nazwa, cena, id .... ) i szczegóły takie jak podatek czy wysyłka.. Ustawiamy też adresy przekierowania zależne od statusy transakcja (czy anulowany czy nie)..

W bloku try catch tworzymy płatność a następnie wyciągamy link do płatności i przechodzimy do tego linku.. Teraz normalnie widzimy paypal'a i płacimy albo anulujemy..

W zależności co zrobimy paypal przekierowuje nas do wcześniej określonych adresów.

np.

moja_strona.pl/koniec-platnoci.php?success=true

lub

moja_strona.pl/koniec-platnoci.php?success=false

 

Obsługujemy sukces true czy false w wyświetlamy odpowiedni komunikat użytkownikowi.

 

..... z resztą - swoimi widzi mi się np. asynchroniczność i inne aspekty które sobie założyłem już sobie poradzę......

To tyle i to serio w takim wielkim skrócie. Teraz jak możecie starsi koledzy wypowiedzieć się co do tego byłbym wdzięczny.

 

Pozdrówki ;)

Podobne pytania

0 głosów
1 odpowiedź 258 wizyt
pytanie zadane 10 grudnia 2019 w PHP przez Damian Sierocki Użytkownik (800 p.)
+1 głos
1 odpowiedź 361 wizyt
pytanie zadane 24 czerwca 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 296 wizyt
pytanie zadane 16 lipca 2019 w PHP przez kamiz Obywatel (1,010 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...