{"id":26126,"date":"2021-06-21T15:54:00","date_gmt":"2021-06-21T12:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26126"},"modified":"2021-10-17T20:14:14","modified_gmt":"2021-10-17T17:14:14","slug":"hyvaksy-luottokorttimaksut-php-n-paypal-payments-prolla","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/hyvaksy-luottokorttimaksut-php-n-paypal-payments-prolla\/","title":{"rendered":"Hyv\u00e4ksy luottokorttimaksut PHP: n PayPal Payments Prolla"},"content":{"rendered":"<p>Aiotko integroida maksuyhdysk\u00e4yt\u00e4v\u00e4n, joka hyv\u00e4ksyy luottokorttimaksut? Luottokorttimaksu on yksi parhaista vaihtoehdoista verkkomaksun hyv\u00e4ksymiseksi. Asiakkaat haluavat mieluummin maksaa verkossa luottokortillaan. Menet\u00e4t asiakkaita vain siksi, ett\u00e4 verkkosivustosi ei hyv\u00e4ksy luottokorttimaksuja. Verkkokaupan omistajana sinun tulisi lis\u00e4t\u00e4 luottokorttivaihtoehto maksun hyv\u00e4ksymiseksi verkkosivustollasi.<\/p>\n<p>Saatavilla on monia maksuyhdysk\u00e4yt\u00e4vi\u00e4, jotka tukevat luottokorttia. Esimerkiksi Authorize.Net ja Stripe sallivat korttimaksujen hyv\u00e4ksymisen verkossa.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/hyvaksy-luottokorttimaksu-kayttamalla-authorize-net-payment-gateway-ohjelmaa-php-ssa\/\" title=\"Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4\" >Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/opas-raidan-integrointiin-php-n-verkkosivustoon\/\" title=\"Opas raidan integrointiin verkkosivustolla PHP: n kanssa\" >Opas raidan integrointiin verkkosivustolla PHP: n kanssa<\/a><\/li>\n<\/ul>\n<p>Lukijat valitsevat mink\u00e4 tahansa yll\u00e4 olevista vaihtoehdoista, mutta jos he haluavat menn\u00e4 PayPaliin, jatka lukemista. T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n sinulle, kuinka hyv\u00e4ksy\u00e4 luottokorttimaksut PayPal Payments Prolla.<\/p>\n<p>PayPal Payments Pro hyv\u00e4ksyy maksut t\u00e4ysin muokattavalla ratkaisulla. Se tarkoittaa, ett\u00e4 voit luoda oman maksulomakkeen ja laskuttaa asiakasta. Se ei ohjaa sinua PayPalin verkkosivustolle tapahtuman suorittamiseksi.<\/p>\n<p>Aiomme my\u00f6s luoda oman lomakkeen, jossa asiakas antaa korttinsa tiedot ja voi maksaa poistumatta verkkosivustolta. K\u00e4ytt\u00e4j\u00e4 voi suunnitella oman kassasivunsa ja antaa k\u00e4ytt\u00e4j\u00e4n antaa kortin tiedot. Joten sukeltaa sis\u00e4\u00e4n ilman viivytyksi\u00e4.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Ennen reaaliaikaisten maksujen hyv\u00e4ksymist\u00e4 on aina suositeltavaa testata se ensin hiekkalaatikkotilassa. Jos kaikki toimii odotetusti hiekkalaatikossa, meid\u00e4n pit\u00e4isi tehd\u00e4 se el\u00e4\u00e4, jotta v\u00e4ltet\u00e4\u00e4n asiakkaan maksuihin liittyv\u00e4t ongelmat. Maksujen testaamiseksi sinulla on oltava PayPal-hiekkalaatikkotili. Luo tili <a href=\"https:\/\/developer.paypal.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayPal Developer<\/a> -sovelluksessa. Kun olet luonut tilin, siirry vasemman <strong>reunan<\/strong> valikosta kohtaan <strong>SANDBOX-&gt; Tilit<\/strong> ja luo yritystili.<\/p>\n<p>T\u00e4m\u00e4n artikkelin kirjoittamisen ajankohtana PayPal Payments Pro on saatavana Yhdysvalloissa, Isossa-Britanniassa ja Kanadassa. Se tarkoittaa, ett\u00e4 kun luot tilin, sinun on valittava jompikumpi n\u00e4ist\u00e4 maista.<\/p>\n<p>Kun sinulla on yritystili, sinun on p\u00e4ivitett\u00e4v\u00e4 tilisi tyyppi Business-Pro: ksi. Luottokorttimaksujen hyv\u00e4ksyminen edellytt\u00e4\u00e4, ett\u00e4 tilisi tyyppi on Business-Pro. P\u00e4ivit\u00e4 se napsauttamalla P\u00e4ivit\u00e4 Pro -linkki\u00e4 ja PayPal muuntaa tilisi tyypin Business-Pro-muotoon.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20129-6081c034cf341.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-20129-6081c034cf341.png\" alt=\"Hyv\u00e4ksy luottokorttimaksut PHP: n PayPal Payments Prolla\" ><\/a><\/p>\n<p>Napsauta sitten &#8217;API Credentials&#8217; -v\u00e4lilehte\u00e4 ja napauta tunnistetietosi. Tarvitsemme n\u00e4m\u00e4 tunnistetiedot t\u00e4m\u00e4n opetusohjelman seuraavassa osassa.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20129-6081c0355f78e.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-20129-6081c0355f78e.png\" alt=\"Hyv\u00e4ksy luottokorttimaksut PHP: n PayPal Payments Prolla\" ><\/a><\/p>\n<h3>Mukautettava maksulomake<\/h3>\n<p>Kuten sanoin, PayPal Payments Prolla voit suunnitella oman maksulomakkeesi. Luodaan mukava kassalomake, jossa asiakas antaa maksutietonsa. K\u00e4yt\u00e4n t\u00e4ss\u00e4 opetusohjelmassa hienosti muotoilulomaketta <a href=\"https:\/\/codepen.io\/hswd\/pen\/JYvgBW\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">codepeniss\u00e4<\/a>.<\/p>\n<p>Lopullisen kansiorakenteen tulee olla seuraava:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20129-6081c0355f78e.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-20129-6081c0355f78e.png\" alt=\"Hyv\u00e4ksy luottokorttimaksut PHP: n PayPal Payments Prolla\" ><\/a><\/p>\n<p>\u00c4l\u00e4 ajattele <code>vendor<\/code>, <code>charge.php<\/code>, <code>composer.json<\/code>, <code>composer.lock<\/code>nyt. Luomme sen my\u00f6hemm\u00e4ss\u00e4 osassa.<\/p>\n<p>Luo <code>css\/card.css<\/code>tiedosto ja lis\u00e4\u00e4 siihen alla oleva koodi <a href=\"https:\/\/codepen.io\/hswd\/pen\/JYvgBW\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">koodikyn\u00e4n ohjeiden mukaan<\/a>.<\/p>\n<pre><code>@import url(https:\/\/fonts.googleapis.com\/css?family=Roboto:400,900,700,500);\n\u00a0\nbody {\n\u00a0\u00a0padding: 60px 0;\n\u00a0\u00a0background-color: rgba(178,209,229,0.7);\n\u00a0\u00a0margin: 0 auto;\n\u00a0\u00a0width: 600px;\n}\n.body-text {\n\u00a0\u00a0padding: 0 20px 30px 20px;\n\u00a0\u00a0font-family: \"Roboto\";\n\u00a0\u00a0font-size: 1em;\n\u00a0\u00a0color: #333;\n\u00a0\u00a0text-align: center;\n\u00a0\u00a0line-height: 1.2em;\n}\n.form-container {\n\u00a0\u00a0flex-direction: column;\n\u00a0\u00a0justify-content: center;\n\u00a0\u00a0align-items: center;\n}\n.card-wrapper {\n\u00a0\u00a0background-color: #6FB7E9;\n\u00a0\u00a0width: 100%;\n\u00a0\u00a0display: flex;\n\u00a0\n}\n.personal-information {\n\u00a0\u00a0background-color: #3C8DC5;\n\u00a0\u00a0color: #fff;\n\u00a0\u00a0padding: 1px 0;\n\u00a0\u00a0text-align: center;\n}\nh1 {\n\u00a0\u00a0font-size: 1.3em;\n\u00a0\u00a0font-family: \"Roboto\"\n}\ninput {\n\u00a0\u00a0margin: 1px 0;\n\u00a0\u00a0padding-left: 3%;\n\u00a0\u00a0font-size: 14px;\n}\ninput[type=\"text\"]{\n\u00a0\u00a0display: block;\n\u00a0\u00a0height: 50px;\n\u00a0\u00a0width: 97%;\n\u00a0\u00a0border: none;\n}\ninput[type=\"email\"]{\n\u00a0\u00a0display: block;\n\u00a0\u00a0height: 50px;\n\u00a0\u00a0width: 97%;\n\u00a0\u00a0border: none;\n}\ninput[type=\"submit\"]{\n\u00a0\u00a0display: block;\n\u00a0\u00a0height: 60px;\n\u00a0\u00a0width: 100%;\n\u00a0\u00a0border: none;\n\u00a0\u00a0background-color: #3C8DC5;\n\u00a0\u00a0color: #fff;\n\u00a0\u00a0margin-top: 2px;\n\u00a0\u00a0curson: pointer;\n\u00a0\u00a0font-size: 0.9em;\n\u00a0\u00a0text-transform: uppercase;\n\u00a0\u00a0font-weight: bold;\n\u00a0\u00a0cursor: pointer;\n}\ninput[type=\"submit\"]:hover{\n\u00a0\u00a0background-color: #6FB7E9;\n\u00a0\u00a0transition: 0.3s ease;\n}\n#column-left {\n\u00a0\u00a0width: 46.5%;\n\u00a0\u00a0float: left;\n\u00a0\u00a0margin-bottom: 2px;\n}\n#column-right {\n\u00a0\u00a0width: 46.5%;\n\u00a0\u00a0float: right;\n}\n\u00a0\n@media only screen and (max-width: 480px){\n\u00a0\u00a0body {\n\u00a0\u00a0\u00a0\u00a0width: 100%;\n\u00a0\u00a0\u00a0\u00a0margin: 0 auto;\n\u00a0\u00a0}\n\u00a0\u00a0.form-container {\n\u00a0\u00a0\u00a0\u00a0margin: 0 2%;\n\u00a0\u00a0}\n\u00a0\u00a0input {\n\u00a0\u00a0\u00a0\u00a0font-size: 1em;\n\u00a0\u00a0}\n\u00a0\u00a0#input-button {\n\u00a0\u00a0\u00a0\u00a0width: 100%;\n\u00a0\u00a0}\n\u00a0\u00a0#input-field {\n\u00a0\u00a0\u00a0\u00a0width: 96.5%;\n\u00a0\u00a0}\n\u00a0\u00a0h1 {\n\u00a0\u00a0\u00a0\u00a0font-size: 1.2em;\n\u00a0\u00a0}\n\u00a0\u00a0input {\n\u00a0\u00a0\u00a0\u00a0margin: 2px 0;\n\u00a0\u00a0}\n\u00a0\u00a0input[type=\"submit\"]{\n\u00a0\u00a0\u00a0\u00a0height: 50px;\n\u00a0\u00a0}\n\u00a0\u00a0#column-left {\n\u00a0\u00a0\u00a0\u00a0width: 96.5%;\n\u00a0\u00a0\u00a0\u00a0display: block;\n\u00a0\u00a0\u00a0\u00a0float: none;\n\u00a0\u00a0}\n\u00a0\u00a0#column-right {\n\u00a0\u00a0\u00a0\u00a0width: 96.5%;\n\u00a0\u00a0\u00a0\u00a0display: block;\n\u00a0\u00a0\u00a0\u00a0float: none;\n\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Vastaavasti <code>js\/card.js<\/code>tiedostollamme on seuraava koodi.<\/p>\n<pre><code>\/* Card.js plugin by Jesse Pollak. https:\/\/github.com\/jessepollak\/card *\/\n\u00a0\n$('form').card({\n\u00a0\u00a0\u00a0\u00a0container: '.card-wrapper',\n\u00a0\u00a0\u00a0\u00a0width: 280,\n\u00a0\n\u00a0\u00a0\u00a0\u00a0formSelectors: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nameInput: 'input[name=\"first-name\"], input[name=\"last-name\"]'\n\u00a0\u00a0\u00a0\u00a0}\n});<\/code><\/pre>\n<p>Hanki kopio <code>jquery.card.js<\/code>t\u00e4st\u00e4 <a href=\"https:\/\/github.com\/jessepollak\/card\/blob\/master\/dist\/jquery.card.js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub-arkistosta<\/a>. Tallenna t\u00e4m\u00e4 tiedosto hakemistoon &#8217;js&#8217;.<\/p>\n<p>Luo nyt <code>index.html<\/code>tiedosto. T\u00e4h\u00e4n tiedostoon lis\u00e4t\u00e4\u00e4n HTML-merkint\u00e4, joka n\u00e4ytt\u00e4\u00e4 kassalomakkeen.<\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta charset=\"UTF-8\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Online Payments&lt;\/title&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;link rel=\"stylesheet\" href=\"css\/card.css\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;form method=\"POST\" action=\"charge.php\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-container\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"personal-information\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h1&gt;Payment Information&lt;\/h1&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt; &lt;!-- end of personal-information --&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-left\" type=\"text\" name=\"first-name\" placeholder=\"First Name\" required=\"required\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-right\" type=\"text\" name=\"last-name\" placeholder=\"Surname\" required=\"required\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"input-field\" type=\"text\" name=\"number\" placeholder=\"Card Number\" required=\"required\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-left\" type=\"text\" name=\"expiry\" placeholder=\"MM \/ YY\" required=\"required\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-right\" type=\"text\" name=\"cvc\" placeholder=\"CCV\" required=\"required\" \/&gt;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"card-wrapper\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"input-field\" type=\"text\" name=\"streetaddress\" required=\"required\" autocomplete=\"on\" maxlength=\"45\" placeholder=\"Streed Address\"\/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-left\" type=\"text\" name=\"city\" required=\"required\" autocomplete=\"on\" maxlength=\"20\" placeholder=\"City\"\/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"column-right\" type=\"text\" name=\"zipcode\" required=\"required\" autocomplete=\"on\" pattern=\"[0-9]*\" maxlength=\"5\" placeholder=\"ZIP code\"\/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"input-field\" type=\"email\" name=\"email\" required=\"required\" autocomplete=\"on\" maxlength=\"40\" placeholder=\"Email\"\/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"input-field\" type=\"text\" name=\"amount\" required=\"required\" autocomplete=\"on\" maxlength=\"40\" placeholder=\"Amount\"\/&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input id=\"input-button\" name=\"submit\" type=\"submit\" value=\"Submit\"\/&gt;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.6.0\/jquery.min.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"js\/jquery.card.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"js\/card.js\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Siirry selaimeen ja suorita <code>index.html<\/code>tiedosto. Sinun pit\u00e4isi nyt n\u00e4hd\u00e4 kauniisti n\u00e4ytt\u00e4v\u00e4 kassalomake.<\/p>\n<h3>Hyv\u00e4ksy luottokorttimaksut PayPal Payments Prolla<\/h3>\n<p>Olet nyt valmis PayPal-sovellusliittym\u00e4n kirjautumistiedoilla ja HTML-lomakkeella. On aika tehd\u00e4 asioista dynaamisia. Maksuyhdysk\u00e4yt\u00e4v\u00e4n integrointi ei ole helppoa. Sinun t\u00e4ytyy tutkia sit\u00e4 ja lukea koko toimittajan toimittama dokumentaatio. Joskus siit\u00e4 tulee niin h\u00e4mment\u00e4v\u00e4\u00e4 ja siit\u00e4 huolimatta, ett\u00e4 viet\u00e4t pitki\u00e4 tunteja, ep\u00e4onnistut tavoitteesi saavuttamisessa. Olin kohdannut sen monta kertaa. PayPalin osalta tilanne muuttuu monimutkaisemmaksi suuren PayPal-dokumentaation takia.<\/p>\n<p>N\u00e4in ei ole en\u00e4\u00e4. <a href=\"https:\/\/omnipay.thephpleague.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> tekee kehitt\u00e4j\u00e4mme el\u00e4m\u00e4st\u00e4 helppoa maksuyhdysk\u00e4yt\u00e4v\u00e4n integroinnin kannalta. T\u00e4t\u00e4 kirjastoa k\u00e4ytett\u00e4ess\u00e4 sinun ei tarvitse lukea maksuyhdysk\u00e4yt\u00e4v\u00e4n dokumentaatiota. Hanki vain API-tunnuksesi, seuraa Omnipay-ohjeita ja olet valmis. Katso heid\u00e4n <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub-sivulta<\/a> lis\u00e4tietoja.<\/p>\n<p>Asenna Omnipay ja tuettu PayPal-kirjasto suorittamalla seuraava komento.<\/p>\n<pre><code>composer require league\/omnipay:^3 omnipay\/paypal<\/code><\/pre>\n<p>Kun olet asentanut yll\u00e4 olevat kirjastot, alla oleva koodi menee <code>charge.php<\/code>tiedostosi sis\u00e4\u00e4n.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse OmnipayOmnipay;\n\u00a0\u00a0\n$gateway = Omnipay::create('PayPal_Pro');\n$gateway-&gt;setUsername(PAYPAL_API_USERNAME);\n$gateway-&gt;setPassword(PAYPAL_API_PASSWORD);\n$gateway-&gt;setSignature(PAYPAL_API_SIGNATURE);\n$gateway-&gt;setTestMode(true); \/\/ here 'true' is for sandbox. Pass 'false' when go live\n\u00a0\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$arr_expiry = explode(\"\/\", $_POST['expiry']);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$formData = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'firstName' =&gt; $_POST['first-name'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'lastName' =&gt; $_POST['last-name'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'number' =&gt; $_POST['number'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryMonth' =&gt; trim($arr_expiry[0]),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryYear' =&gt; trim($arr_expiry[1]),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'cvv' =&gt; $_POST['cvc']\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Send purchase request\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $gateway-&gt;purchase([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $_POST['amount'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'card' =&gt; $formData\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Process response\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($response-&gt;isSuccessful()) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Payment was successful\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Payment is successful. Your Transaction ID is: \". $response-&gt;getTransactionReference();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Payment failed\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Payment failed. \". $response-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Muista korvata paikkamerkin PAYPAL_API_USERNAME, PAYPAL_API_PASSWORD, PAYPAL_API_SIGNATURE todellisilla arvoilla. Siirry nyt selaimeesi ja yrit\u00e4 suorittaa maksu n\u00e4enn\u00e4isill\u00e4 luottokorttitiedoilla. Sinun pit\u00e4isi saada menestysviesti yhdess\u00e4 tapahtumasi tunnuksen kanssa. K\u00e4ytt\u00e4j\u00e4 voi saada <a href=\"https:\/\/developer.paypal.com\/docs\/payflow\/payflow-pro\/payflow-pro-testing\/#credit-card-numbers-for-testing\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayPalin<\/a> tarjoamat testiluottokortit.<\/p>\n<h3>Hyv\u00e4ksy reaaliaikainen maksu PayPal Pro Payment Gateway -sovelluksella<\/h3>\n<p>Kun olet suorittanut hiekkalaatikkotestin, v\u00e4lit\u00e4 koodissa k\u00e4ytettyjen paikkamerkkien live-tunnistetiedot. Sinun on my\u00f6s v\u00e4litett\u00e4v\u00e4 &#8217;v\u00e4\u00e4r\u00e4&#8217; arvo <code>setTestMode()<\/code>menetelm\u00e4lle.<\/p>\n<p>Kyse on luottokorttimaksujen hyv\u00e4ksymisest\u00e4 PayPal Payments Prolla PHP: ss\u00e4. Toivon, ett\u00e4 se auttaa sinua integroimaan maksuratkaisun verkkosivustollesi. Kokeile t\u00e4t\u00e4 opetusohjelmaa ja kerro minulle ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n sinulle, kuinka hyv\u00e4ksy\u00e4 luottokorttimaksut verkkosivustollasi PHP: n avulla. K\u00e4yt\u00e4n Omnipay-kirjastoa ja integroin Paypalin<\/p>\n","protected":false},"author":1,"featured_media":21609,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[275],"tags":[843],"class_list":["post-26126","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/26126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=26126"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/26126\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21609"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=26126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=26126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=26126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}