{"id":26491,"date":"2021-04-25T10:49:00","date_gmt":"2021-04-25T07:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26491"},"modified":"2021-10-18T03:55:06","modified_gmt":"2021-10-18T00:55:06","slug":"przewodnik-dotyczacy-integracji-paypal-w-twojej-witrynie-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/przewodnik-dotyczacy-integracji-paypal-w-twojej-witrynie-w-php\/","title":{"rendered":"Przewodnik dotycz\u0105cy integracji PayPal w Twojej witrynie w PHP"},"content":{"rendered":"<p>PayPal to bez w\u0105tpienia jedna z najpopularniejszych bramek p\u0142atniczych dla stron internetowych. Wi\u0119kszo\u015b\u0107 witryn korzysta z systemu PayPal do otrzymywania p\u0142atno\u015bci w swojej aplikacji. W tym artykule zajmiemy si\u0119 integracj\u0105 PayPal z aplikacj\u0105 internetow\u0105 w PHP.<\/p>\n<h3>Dlaczego warto wybra\u0107 PayPal?<\/h3>\n<p>Za\u0142o\u017cenie <a href=\"https:\/\/www.paypal.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">konta w systemie PayPal<\/a> jest ca\u0142kowicie bezp\u0142atne. Nie musisz nic p\u0142aci\u0107 z g\u00f3ry. PayPal b\u0119dzie pobiera\u0142 op\u0142aty za transakcj\u0119.<\/p>\n<p>Podczas wykonywania transakcji p\u0142atniczych PayPal u\u017cywa szyfrowania Secure Socket Layers (SSL). Chroni to dane osobowe i poufne klienta. Dzi\u0119ki temu Twoi klienci czuj\u0105 si\u0119 bezpiecznie podczas dokonywania p\u0142atno\u015bci za po\u015brednictwem Twojej aplikacji internetowej.<\/p>\n<p>PayPal umo\u017cliwia r\u00f3wnie\u017c p\u0142acenie za pomoc\u0105 salda PayPal, kart kredytowych lub debetowych. Dodaje kilka opcji dla klienta, aby zap\u0142aci\u0107 za twoj\u0105 us\u0142ug\u0119.<\/p>\n<p>Do przyjmowania p\u0142atno\u015bci kartami kredytowymi mo\u017cesz r\u00f3wnie\u017c skorzysta\u0107 z us\u0142ugi <a href=\"http:\/\/reseller.authorize.net\/application\/103001\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.net<\/a>. Je\u015bli chcesz dowiedzie\u0107 si\u0119 wi\u0119cej o Authorize.net post\u0119puj zgodnie z naszym samouczkiem <a href=\"https:\/\/themewp.inform.click\/pl\/akceptuj-platnosci-karta-kredytowa-za-pomoca-bramki-platnosci-authorize-net-w-php\/\" title=\"Akceptuj p\u0142atno\u015bci kart\u0105 kredytow\u0105 za pomoc\u0105 bramki p\u0142atno\u015bci Authorize.net w PHP\">Akceptuj p\u0142atno\u015bci kart\u0105 kredytow\u0105 za pomoc\u0105 bramki p\u0142atno\u015bci Authorize.net w PHP<\/a>.<\/p>\n<h3>Integracja PayPal<\/h3>\n<p>Skoro mowa o stronie <a href=\"https:\/\/github.com\/paypal\/PayPal-PHP-SDK\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">opartej na<\/a> PHP, b\u0119dziemy korzysta\u0107 z <a href=\"https:\/\/github.com\/paypal\/PayPal-PHP-SDK\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">oficjalnej biblioteki GiHub systemu PayPal<\/a>. Ta biblioteka jest przeznaczona dla aplikacji PHP.<\/p>\n<p>Do instalacji biblioteki zalecamy u\u017cycie <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composera<\/a>.<\/p>\n<p>Tak wi\u0119c, aby zintegrowa\u0107 PayPal ze stron\u0105 internetow\u0105, najpierw uruchom poni\u017csze polecenie w katalogu g\u0142\u00f3wnym projektu.<\/p>\n<pre><code>composer require \"paypal\/rest-api-sdk-php:*\"<\/code><\/pre>\n<h3>Uzyskaj identyfikator klienta i tajny klucz klienta<\/h3>\n<p>Gdy klient p\u0142aci przez PayPal, kwota powinna zosta\u0107 wp\u0142acona na Twoje konto PayPal. Aby to zrobi\u0107, musimy uzyska\u0107 Tw\u00f3j identyfikator klienta i tajny klucz klienta. Mo\u017cna tworzy\u0107 swoje listy uwierzytelniaj\u0105ce od <a href=\"https:\/\/developer.paypal.com\/developer\/applications\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a>.<\/p>\n<p>Na tej stronie Moje aplikacje i po\u015bwiadczenia przewi\u0144 w d\u00f3\u0142 do sekcji \u201eRest API apps&quot; i kliknij przycisk \u201eUtw\u00f3rz aplikacj\u0119&#8221;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d897ebfb.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d897ebfb.png\" alt=\"Przewodnik dotycz\u0105cy integracji PayPal w Twojej witrynie w PHP\" ><\/a><\/p>\n<p>Nadaj nazw\u0119 swojej aplikacji i naci\u015bnij przycisk \u201eUtw\u00f3rz aplikacj\u0119&#8221;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d8a1a76b.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d8a1a76b.png\" alt=\"Przewodnik dotycz\u0105cy integracji PayPal w Twojej witrynie w PHP\" ><\/a><\/p>\n<p>Po wykonaniu powy\u017cszych krok\u00f3w otrzymasz dane uwierzytelniaj\u0105ce zar\u00f3wno dla trybu Sandbox, jak i Live.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d8a1a76b.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20926-60823d8a1a76b.png\" alt=\"Przewodnik dotycz\u0105cy integracji PayPal w Twojej witrynie w PHP\" ><\/a><\/p>\n<p>Teraz jeste\u015bmy gotowi z naszym identyfikatorem klienta i tajnymi kluczami klienta. Zr\u00f3bmy krok do przodu i napiszmy kawa\u0142ek kodu.<\/p>\n<h3>Rzeczywisty kod do integracji z PayPal<\/h3>\n<p>Na tym etapie jeste\u015bmy gotowi z bibliotek\u0105 i danymi uwierzytelniaj\u0105cymi. Teraz, aby zintegrowa\u0107 PayPal ze stron\u0105 internetow\u0105, tworzymy 4 pliki:<\/p>\n<p><code>checkout.php<\/code>: W tym pliku mamy formularz, kt\u00f3ry zawiera nazw\u0119 pozycji i ilo\u015b\u0107.<br \/>\n<code>payment.php<\/code>: To jest plik, w kt\u00f3rym zapisujemy ca\u0142y kod zwi\u0105zany z PayPal.<br \/>\n<code>success.php<\/code>: Po pomy\u015blnej p\u0142atno\u015bci klient przekieruje do tego pliku.<br \/>\n<code>error.php<\/code>: Je\u015bli p\u0142atno\u015b\u0107 nie powiedzie si\u0119, klient przekierowuje do tego pliku.<\/p>\n<p><strong>kasa.php<\/strong><\/p>\n<pre><code>&lt;form action=\"payment.php\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"item\" placeholder=\"Enter Item Name\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"amount\" placeholder=\"Enter Amount\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Pay\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p><strong>p\u0142atno\u015b\u0107.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nuse PayPalApiItem;\nuse PayPalApiItemList;\n\u00a0\n$apiContext = new PayPalRestApiContext(\n\u00a0\u00a0\u00a0\u00a0new PayPalAuthOAuthTokenCredential(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'YOUR_CLIENT_ID',\u00a0\u00a0\u00a0\u00a0 \/\/ ClientID\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'YOUR_CLIENT_SECRET'\u00a0 \/\/ ClientSecret\n\u00a0\u00a0\u00a0\u00a0)\n);\n\u00a0\n$apiContext-&gt;setConfig(\n\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'log.LogEnabled' =&gt; true,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'log.FileName' =&gt; 'PayPal.log',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'log.LogLevel' =&gt; 'DEBUG',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'mode' =&gt; 'sandbox', \/\/'live' or 'sandbox'\n\u00a0\u00a0\u00a0\u00a0)\n);\n\u00a0\n$payer = new PayPalApiPayer();\n$payer-&gt;setPaymentMethod('paypal');\n\u00a0\n$item1 = new Item();\n$item1-&gt;setName($_POST['item'])\n\u00a0\u00a0\u00a0\u00a0-&gt;setCurrency('USD')\n\u00a0\u00a0\u00a0\u00a0-&gt;setQuantity(1)\n\u00a0\u00a0\u00a0\u00a0-&gt;setPrice($_POST['amount']);\n\u00a0\n$itemList = new ItemList();\n$itemList-&gt;setItems(array($item1));\n\u00a0\n$amount = new PayPalApiAmount();\n$amount-&gt;setTotal($_POST['amount']);\n$amount-&gt;setCurrency('USD');\n\u00a0\n$transaction = new PayPalApiTransaction();\n$transaction-&gt;setDescription(\"Payment For Service\")\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;setItemList($itemList)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;setAmount($amount);\n\u00a0\n$redirectUrls = new PayPalApiRedirectUrls();\n$redirectUrls-&gt;setReturnUrl(\"YOUR_HTTP_PATH\/success.php\")\n\u00a0\u00a0\u00a0\u00a0-&gt;setCancelUrl(\"YOUR_HTTP_PATH\/error.php\");\n\u00a0\n$payment = new PayPalApiPayment();\n$payment-&gt;setIntent('sale')\n\u00a0\u00a0\u00a0\u00a0-&gt;setPayer($payer)\n\u00a0\u00a0\u00a0\u00a0-&gt;setTransactions(array($transaction))\n\u00a0\u00a0\u00a0\u00a0-&gt;setRedirectUrls($redirectUrls);\n\u00a0\n\/\/ 4. Make a Create Call\ntry {\n\u00a0\u00a0\u00a0\u00a0$payment-&gt;create($apiContext);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0header('Location: '. $payment-&gt;getApprovalLink());\n}\ncatch (PayPalExceptionPayPalConnectionException $ex) {\n\u00a0\u00a0\u00a0\u00a0\/\/ This will print the detailed information on the exception.\n\u00a0\u00a0\u00a0\u00a0\/\/REALLY HELPFUL FOR DEBUGGING\n\u00a0\u00a0\u00a0\u00a0echo $ex-&gt;getData();\n}\n?&gt;<\/code><\/pre>\n<p>Pami\u0119taj, aby zast\u0105pi\u0107 symbole zast\u0119pcze rzeczywistymi warto\u015bciami. W powy\u017cszym kodzie ustawiamy warto\u015b\u0107 'mode&#8217; na 'sandbox&#8217;. Podczas przechodzenia do \u015brodowiska produkcyjnego ustaw t\u0119 warto\u015b\u0107 jako \u201eaktywn\u0105&#8221; i dodaj identyfikator aktywnego klienta oraz klucz tajny klienta.<\/p>\n<p>Po zako\u0144czeniu procesu p\u0142atno\u015bci przez PayPal, na podstawie powodzenia lub niepowodzenia p\u0142atno\u015bci, nast\u0105pi przekierowanie do pliku success.php lub error.php.<\/p>\n<p><strong>sukces.php<\/strong><\/p>\n<pre><code>&lt;h2&gt;Payment Successful.&lt;\/h2&gt;<\/code><\/pre>\n<p><strong>b\u0142\u0105d.php<\/strong><\/p>\n<pre><code>&lt;h2&gt;Something went wrong. Try again later.&lt;\/h2&gt;<\/code><\/pre>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz integracj\u0119 PayPal w aplikacji internetowej. Podziel si\u0119 swoimi przemy\u015bleniami w sekcji komentarzy poni\u017cej.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym samouczku zajmiemy si\u0119 integracj\u0105 systemu PayPal z aplikacj\u0105 internetow\u0105. Na pocz\u0105tek zainstalujemy oficjaln\u0105 bibliotek\u0119 GitHub dla PHP. Nast\u0119pnie pokazujemy<\/p>\n","protected":false},"author":1,"featured_media":21797,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-26491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=26491"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26491\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21797"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=26491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=26491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=26491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}