{"id":25849,"date":"2021-06-15T12:59:00","date_gmt":"2021-06-15T09:59:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25849"},"modified":"2021-10-17T20:16:56","modified_gmt":"2021-10-17T17:16:56","slug":"hyvaksy-luottokorttimaksu-kayttamalla-authorize-net-payment-gateway-ohjelmaa-php-ssa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/hyvaksy-luottokorttimaksu-kayttamalla-authorize-net-payment-gateway-ohjelmaa-php-ssa\/","title":{"rendered":"Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4"},"content":{"rendered":"<p>Haluatko integroida luottokorttimaksuvaihtoehdon verkkosivustollesi? Jos kyll\u00e4, niin Authorize.Net on hyv\u00e4 valinta sinulle. Vuonna 1996 perustettu t\u00e4m\u00e4 on yksi suosituimmista maksuportteista Internetiss\u00e4.<\/p>\n<p>Verkkokaupassa luottokortteja k\u00e4ytet\u00e4\u00e4n laajalti maksujen hyv\u00e4ksymiseen. Asiakkaat haluavat mieluummin maksaa luottokorteilla verkkotuotteiden ostamiseksi. Kaupassasi sinun on annettava mahdollisuus maksaa luottokortilla. T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n sinulle, miten Authorize.Net-maksuyhdysk\u00e4yt\u00e4v\u00e4 integroidaan, jonka avulla voit vastaanottaa luottokorttimaksuja.<\/p>\n<p>Aina kun lis\u00e4\u00e4mme maksuyhdysk\u00e4yt\u00e4vi\u00e4, meid\u00e4n on ensin testattava tapahtumat hiekkalaatikkotilassa. Kun testimaksut toimivat oikein, voit siirty\u00e4 live-versioon.<\/p>\n<p>Voit aloittaa Authorize.Net-palvelun luomalla ensin <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hiekkalaatikkotilin<\/a>. Kopioi tilin luomisen yhteydess\u00e4 kirjautumistunnus ja tapahtuma-avain. Voit saada n\u00e4m\u00e4 API-avaimet kohdasta <strong>Tili-&gt; API-<\/strong> tunnukset <strong>ja avaimet<\/strong>. Katso alla oleva kuvakaappaus.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc62a61f7.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-20201-6081cc62a61f7.png\" alt=\"Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4\" ><\/a><\/p>\n<p>Seuraavalta sivulta saat API-kirjautumistunnuksesi. Luo tapahtuma-avain Luo uusi avain (t) -osasta alla olevan kuvakaappauksen mukaisesti.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc632ae89.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-20201-6081cc632ae89.png\" alt=\"Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4\" ><\/a><\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Authorize.Net-palvelun integroimiseksi k\u00e4yt\u00e4mme <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay-<\/a> kirjastoa, joka tarjoaa puhtaan ja helpon tavan maksujen integrointiin. Asenna Omnipay-kirjasto projektiisi komennolla:<\/p>\n<pre><code>composer require league\/omnipay:^3<\/code><\/pre>\n<p>Se asentaa Omnipay-kirjaston. Lis\u00e4ksi meid\u00e4n on asennettava Omnipay-paketti Authorize.Netille. T\u00e4m\u00e4n paketin avulla voimme kaapata maksun Authorize.Net-maksuyhdysk\u00e4yt\u00e4v\u00e4n kautta. Lue lis\u00e4\u00e4 t\u00e4st\u00e4 paketista heid\u00e4n <a href=\"https:\/\/github.com\/academe\/omnipay-authorizenetapi\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatiostaan<\/a>. Asenna t\u00e4m\u00e4 paketti suorittamalla alla oleva komento:<\/p>\n<pre><code>composer require \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Olemme valmiita tuettujen kirjastojen kanssa. Luodaan nyt yksinkertainen lomake m\u00e4\u00e4r\u00e4n ja kortin tietojen sy\u00f6tt\u00e4miseksi. Luon <code>index.php<\/code>tiedoston ja lis\u00e4t\u00e4\u00e4n siihen alla oleva HTML.<\/p>\n<pre><code>&lt;form action=\"charge.php\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"amount\" placeholder=\"Enter Amount\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cc_number\" placeholder=\"Card Number\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_month\" placeholder=\"Month\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_year\" placeholder=\"Year\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cvv\" placeholder=\"CVV\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Hyv\u00e4ksyess\u00e4si verkkomaksun meid\u00e4n on tallennettava tapahtuman tiedot tietokantaan. Joten tallentaaksesi transaktiotiedot, luo &#8217;maksut&#8217; taulukko tietokantaan k\u00e4ytt\u00e4m\u00e4ll\u00e4 alla olevaa kysely\u00e4.<\/p>\n<pre><code>CREATE TABLE `payments` (\u00a0`id` int(11) NOT NULL AUTO_INCREMENT,\n\u00a0`transaction_id` varchar(255) NOT NULL,\n\u00a0`amount` float(10,2) NOT NULL,\n\u00a0`currency` varchar(255) NOT NULL,\n\u00a0`payment_status` varchar(255) NOT NULL,\n\u00a0`captured_at` datetime NOT NULL DEFAULT current_timestamp(),\n\u00a0PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/code><\/pre>\n<h3>Hyv\u00e4ksy luottokorttimaksu Authorize.Net-palvelun avulla<\/h3>\n<p>Olet kopioinut Authorize.Net-tilisi API-avaimet edellisiss\u00e4 vaiheissa. On aika lis\u00e4t\u00e4 n\u00e4m\u00e4 avaimet PHP-koodiin. Tallenna n\u00e4m\u00e4 tunnistetiedot <code>config.php<\/code>tiedostoon. Lis\u00e4\u00e4n my\u00f6s tietokantayhteyden t\u00e4h\u00e4n tiedostoon.<\/p>\n<p><strong>config.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\n\/\/ Connect with the database\n$db = new mysqli('localhost', 'MYSQL_DB_USERNAME', 'MYSQL_DB_PASSWORD', 'MYSQL_DB_NAME');\n\u00a0\u00a0\nif ($db-&gt;connect_errno) {\n\u00a0\u00a0\u00a0\u00a0die(\"Connect failed: \". $db-&gt;connect_error);\n}\n\u00a0\u00a0\n$gateway = OmnipayOmnipay::create('AuthorizeNetApi_Api');\n$gateway-&gt;setAuthName('PASTE_ANET_API_LOGIN_ID');\n$gateway-&gt;setTransactionKey('PASTE_ANET_TRANSACTION_KEY');\n$gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'<\/code><\/pre>\n<p>Korvaa paikkamerkit todellisilla arvoilla. Kun testaamme maksuja hiekkalaatikossa, hyv\u00e4ksyin menetelm\u00e4n <code>setTestMode<\/code>. Kun olet valmis siirtym\u00e4\u00e4n tuotantoon, poista \/ kommentoi t\u00e4m\u00e4 rivi.<\/p>\n<p>Asetin yll\u00e4 olevassa luomassamme muodossa <code>charge.php<\/code>toiminnan URL-osoitteeksi. Se tarkoittaa, ett\u00e4 luottokorttimaksun sieppaava todellinen koodi menee t\u00e4m\u00e4n tiedoston sis\u00e4lle.<\/p>\n<p><strong>charge.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\n\u00a0\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$creditCard = new OmnipayCommonCreditCard([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'number' =&gt; $_POST['cc_number'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryMonth' =&gt; $_POST['expiry_month'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryYear' =&gt; $_POST['expiry_year'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'cvv' =&gt; $_POST['cvv'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Generate a unique merchant site transaction ID.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionId = rand(100000000, 999999999);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $gateway-&gt;authorize([\n\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'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'transactionId' =&gt; $transactionId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'card' =&gt; $creditCard,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\u00a0\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\/\/ Captured from the authorization response.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionReference = $response-&gt;getTransactionReference();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $gateway-&gt;capture([\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'transactionReference' =&gt; $transactionReference,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transaction_id = $response-&gt;getTransactionReference();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$amount = $_POST['amount'];\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Insert transaction data into the database\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$isPaymentExist = $db-&gt;query(\"SELECT * FROM payments WHERE transaction_id = '\".$transaction_id.\"'\");\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($isPaymentExist-&gt;num_rows == 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$insert = $db-&gt;query(\"INSERT INTO payments(transaction_id, amount, currency, payment_status) VALUES('$transaction_id', '$amount', 'USD', 'Captured')\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Your payment transaction id: \". $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ not successful\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $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>Voit nyt testata maksua. Hanki n\u00e4m\u00e4 <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">testiluottokortin numerot<\/a> maksun testaamista varten. Onnistuneen vastauksen yhteydess\u00e4 sinun tulee hankkia tapahtumasi tunnus.<\/p>\n<p>Omistaja voi n\u00e4hd\u00e4 tapahtumat Authorize.Net-hallintapaneelissa. L\u00f6yd\u00e4t maksutapahtumat kohdasta &quot;J\u00e4rjest\u00e4m\u00e4tt\u00f6m\u00e4t tapahtumat&quot;. Authorize.Net ratkaisee tapahtuman my\u00f6hemmin itse ja ilmoittaa sinulle s\u00e4hk\u00f6postitse.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc632ae89.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-20201-6081cc632ae89.png\" alt=\"Hyv\u00e4ksy luottokorttimaksu k\u00e4ytt\u00e4m\u00e4ll\u00e4 Authorize.Net Payment Gateway -ohjelmaa PHP: ss\u00e4\" ><\/a><\/p>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuinka hyv\u00e4ksy\u00e4 luottokorttimaksut Authorize.Net-maksuyhdysk\u00e4yt\u00e4v\u00e4n avulla. Jaa ajatuksesi tai ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/paypal-maksuyhdyskaytavan-integrointi-php-ssa-kayttaen-paypal-rest-sovellusliittymaa\/\" title=\"PayPal-maksuyhdysk\u00e4yt\u00e4v\u00e4n integrointi PHP: ss\u00e4 k\u00e4ytt\u00e4en PayPal REST -sovellusliittym\u00e4\u00e4\">PayPal-maksuyhdysk\u00e4yt\u00e4v\u00e4n integrointi PHP: ss\u00e4 k\u00e4ytt\u00e4en PayPal REST -sovellusliittym\u00e4\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 avulla\">Opas raidan integrointiin verkkosivustolla PHP: n avulla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/hyvaksy-luottokorttimaksut-php-n-paypal-payments-prolla\/\" title=\"Hyv\u00e4ksy luottokorttimaksut PHP: n Paypal Payments Prolla\">Hyv\u00e4ksy luottokorttimaksut PHP: n Paypal Payments Prolla<\/a><\/li>\n<\/ul>\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 tutkitaan, miten Authorize.net integroidaan luottokorttimaksujen hyv\u00e4ksymiseen. Luottokorttimaksuvaihtoehdon lis\u00e4\u00e4minen on hyvin yleist\u00e4<\/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-25849","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\/25849","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=25849"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25849\/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=25849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}