2013-03-25 13 views
5

Zbudowałem wtyczkę do generowania i wyświetlania produktów dla systemu Wordpress CMS i teraz próbuję zintegrować jakąś formę integracji z PayPal dla procesu realizacji transakcji.Łatwiejszy sposób zintegrowania ekspresowego zamówienia PayPal?

Mam wózek, produkty, wysyłkę, sumy, wszystko, co wymyśliłem na moim końcu i miałem nadzieję, że ktoś może wskazać mi najprostszy kierunek wysyłania tej informacji do PayPal. Rozumiem, że niektóre metody robienia tego nie są tak bezpieczne, a inne sprawiają, że przeskakujesz przez obręcze, jak na jakiegoś psa wystawowego. Próbowałem nauczyć się używać cURL, a następnie jak sprawić, by działał z PHP - to naprawdę wygląda na trochę bałaganu. Mam teraz cURL działający na moim serwerze WAMP ... ale ..

Czy jest lepszy sposób, czy powinienem kontynuować naukę cURL?

Potrafię sformatować dane, ale trzeba je wysłać do PayPala i nie miałbym nic przeciwko temu, by zrobić to z JavaScriptem - to nie jest płatność, a każde zamówienie jest sprawdzane pod kątem dokładności przez człowieka - więc ktoś kręci się z skrypt po stronie klienta nie będzie mi przeszkadzał. Ja również zdecydowanie chcę wysłać je do PayPala, nie chcę brać udziału w przechowywaniu/przetwarzaniu informacji o karcie kredytowej. Byłoby jednak miło mieć IPN. Czy ktoś może wskazać mi właściwy kierunek lub zapewnić mnie, że już zmierzam w tym kierunku?

Wielkie dzięki.

Odpowiedz

7

W ten sposób automatycznie przekierowuję do PayPal z wszystkimi szczegółami formularza;

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

<input type="hidden" name="cmd" value="_xclick" /> 
    <input type="hidden" name="cbt" value="Return to example" /> 
<input type="hidden" name="business" value="email" /> 
<input type="hidden" name="item_name" value="example Purchase" /> 
<input type="hidden" name="amount" value="9.99"> 
<input type="hidden" name="button_subtype" value="services" /> 
<input type="hidden" name="no_shipping" value="1"> 
<input type="hidden" name="return" value="URL" /> 
<input type="hidden" name="notify_url" value="URL"/> 
<input type="hidden" name="cancel_return" value="URL" /> 
<input type="hidden" name="currency_code" value="USD"/> 
<input type="hidden" name="image_url" value="" /> 
<input type="hidden" id="custom" name="custom" value="invoice_id to track"/> 
<input type="hidden" class="btn btn-primary" style="width:100%" alt="PayPal - The safer, easier way to pay online!"/> 

</form> 

Dla wielu produktów można po prostu dodać więcej produktów do formularza, przykład;

<input type="hidden" name="item_name_1" value="Item #1"> 
<input type="hidden" name="amount_1" value="1.00"> 
<input type="hidden" name="item_name_2" value="Item #2"> 
<input type="hidden" name="amount_2" value="2.00"> 

Jednak za pomocą tej metody jest nie wszystkie wielkie

Wszystkie dane będą musiały być generowane z PHP i wejścia na stronę, będzie trzeba także sprawdzić transakcję gdy IPN oddzwania do upewnij się, że został zapłacony.

<script type="text/javascript"> 
    function myfunc() { 
    var frm = document.getElementById("paypal"); 
    frm.submit(); 
    } 
    window.onload = myfunc; 
</script> 
+0

Dziękuję za szybką odpowiedź. Czy to działa dla całego koszyka produktów, czy tylko jednego na raz? Czy możesz podać jakieś informacje na temat tego, jak traktujesz IPN? – Jon

+0

Edytowane, aby pokazać użycie wielu produktów. –

+0

Jeszcze raz dziękuję, generowanie kodu HTML potrzebnego do wysłania tego formularza do PayPal nie powinno stanowić problemu. Wygląda na to, że jedynym brakującym elementem układanki będzie odgadywanie i obsługa IPN. – Jon

3

Możesz użyć nowego PayPal SDK. Mają dobry zestaw przykładowego kodu, , w tym kod do ekspresowego zamówienia i IPN. Wypróbuj tutaj https://www.x.com/developers/paypal/documentation-tools/paypal-sdk-index Pobierz zestaw SDK do ekspresowego zamówienia. W tym czasie powinny być w SDK 98 dla PHP.

Nie musisz się martwić o Curl, SDK dba o to wszystko dla Ciebie. Typowe połączenie może być coś takiego.

$setECResponse = $paypalService->SetExpressCheckout($setECReq); 

Ta linia kodu jest wzorowana na próbkach. Jest to obiekt zorientowany na obiekt. Zapewniają ci zajęcia. W tym przypadku istnieje obiekt żądania, który wypełniasz, przykłady dokładnie pokazują, jak to zrobić; po prostu użyj próbek jako szablonu.

Wygląda na to, że chcesz skorzystać z realizacji płatności PayPal Express, . W ten sposób nie będziesz musiał obchodzić się z kartami kredytowymi ani nic takiego, jak to jest . Użytkownik zostaje przekierowany na stronę PayPal i wszystkie transakcje finansowe tam się odbywają. Użytkownik jest przekierowywany z powrotem do Twojej witryny.Następnie masz stronę , w której użytkownik może przejrzeć zamówienie i kliknąć, jeśli zaakceptuje, i przesłać je pod numer . Gdy użytkownik kliknie przycisk Wyślij, zadzwoń do interfejsu API systemu PayPal, aby poinformować firmę PayPal, że transakcja została zatwierdzona. PayPal następnie wykonuje transakcję, a odsyła potwierdzenie z identyfikatorem transakcji. Następnie można wywołać getTransactionDetails i wyświetlić klientowi potwierdzenie . Możesz dodatkowo umieścić te dane transakcji w bazie danych.

Oto interfejsy API, które można wywołać w tym celu. Są wzorowane są ściśle na przykładowy kod zapewniają

$paypalService->SetExpressCheckout($setECReq); 

sterowanie przechodzi do adresu URL w systemie PayPal, a użytkownik przechodzi przez tam kilka stron. kontrola wraca do ciebie.

twoja strona przeglądu zamówienia $ paypalService-> GetExpressCheckoutDetails ($ getExpressCheckoutReq);

strona potwierdzenia zamówienia

$paypalService->GetExpressCheckoutDetails($getECReq); 

$paypalService->DoExpressCheckoutPayment($DoECReq); 

Informuje PayPal zrobić transakcję.

$paypalService->GetTransactionDetails($request); 

Tutaj można umieścić szczegóły transakcji w bazie danych. Możesz również wysłać sobie e-mail ze wszystkimi szczegółami, w ten sposób będziesz wiedzieć, kiedy nastąpi transakcja.

IPN może być nieco trudny. Jest dostępny przykładowy detektor IPN , który zapewnia. Będziesz musiał skonfigurować adres URL odbiornika w witrynie PayPal. Będziesz także musiał skonfigurować certyfikat SSL.

Pakiety SDK są całkiem nowe, ale PayPal pracuje na jeszcze lepszym nowszym sposobie robienia rzeczy, developer.paypal.com. Po prostu wyszło w ciągu ostatniego miesiąca. Możesz również to sprawdzić.

Powiązane problemy