{"id":29596,"date":"2021-06-15T12:32:00","date_gmt":"2021-06-15T09:32:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29596"},"modified":"2021-10-17T04:15:27","modified_gmt":"2021-10-17T01:15:27","slug":"acceptera-kreditkortsbetalning-med-authorize-net-payment-gateway-i-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/acceptera-kreditkortsbetalning-med-authorize-net-payment-gateway-i-php\/","title":{"rendered":"Acceptera kreditkortsbetalning med Authorize.Net Payment Gateway i PHP"},"content":{"rendered":"<p>Vill du integrera ett kreditkortsbetalningsalternativ p\u00e5 din webbplats? Om ja, d\u00e5 \u00e4r Authorize.Net ett bra val f\u00f6r dig. Grundades 1996 och \u00e4r en av de popul\u00e4raste betalningsportarna p\u00e5 Internet.<\/p>\n<p>F\u00f6r en webbutik anv\u00e4nds kreditkort ofta f\u00f6r att acceptera betalning. Kunderna f\u00f6redrar att betala med kreditkort f\u00f6r att k\u00f6pa onlineprodukter. I din butik m\u00e5ste du ge m\u00f6jlighet att betala med kreditkort. I den h\u00e4r artikeln visar jag dig hur du integrerar Payment Gateway f\u00f6r Authorize.Net som g\u00f6r att du kan f\u00e5 kreditkortsbetalning.<\/p>\n<p>N\u00e4r vi l\u00e4gger till betalningsgateways m\u00e5ste vi f\u00f6rst testa transaktionerna i sandl\u00e5del\u00e4get. N\u00e4r testbetalningarna fungerar korrekt kan du g\u00e5 till liveversionen.<\/p>\n<p>F\u00f6r att komma ig\u00e5ng med Authorize.Net, skapa f\u00f6rst ett <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sandbox-konto<\/a>. Kopiera inloggnings-id och transaktionsnyckel n\u00e4r kontot skapats. Du kan h\u00e4mta dessa API-nycklar fr\u00e5n <strong>Account-&gt; API Credentials &#038; Keys<\/strong>. Se sk\u00e4rmdumpen nedan.<\/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=\"Acceptera kreditkortsbetalning med Authorize.Net Payment Gateway i PHP\" ><\/a><\/p>\n<p>P\u00e5 n\u00e4sta sida f\u00e5r du ditt &quot;API-inloggnings-ID&quot;. Skapa en transaktionsnyckel fr\u00e5n avsnittet &quot;Skapa nya nycklar&quot; som visas i sk\u00e4rmbilden nedan.<\/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=\"Acceptera kreditkortsbetalning med Authorize.Net Payment Gateway i PHP\" ><\/a><\/p>\n<h3>Komma ig\u00e5ng<\/h3>\n<p>F\u00f6r att integrera Authorize.Net kommer vi att anv\u00e4nda biblioteket <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> som ger ett enkelt och enkelt s\u00e4tt f\u00f6r betalningsintegrering. Installera Omnipay-biblioteket till ditt projekt med kommandot:<\/p>\n<pre><code>composer require league\/omnipay:^3<\/code><\/pre>\n<p>Det installerar Omnipay-biblioteket. Dessutom m\u00e5ste vi installera Omnipay-paketet f\u00f6r Authorize.Net. Detta paket till\u00e5ter oss att f\u00e5nga betalning via Authorize.Net betalningsgateway. L\u00e4s mer om detta paket i deras <a href=\"https:\/\/github.com\/academe\/omnipay-authorizenetapi\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentation<\/a>. K\u00f6r kommandot nedan f\u00f6r att installera det h\u00e4r paketet:<\/p>\n<pre><code>composer require \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Vi \u00e4r redo med st\u00f6dda bibliotek. Nu ska vi skapa ett enkelt formul\u00e4r f\u00f6r att ange belopp och kortinformation. Jag skapar en <code>index.php<\/code>fil och l\u00e4gger till nedanst\u00e5ende HTML i den.<\/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>N\u00e4r vi accepterar onlinebetalning m\u00e5ste vi lagra transaktionsuppgifterna i databasen. S\u00e5, f\u00f6r att lagra transaktionsinformation skapar du en &#8217;betalningstabell&#8217; i databasen med hj\u00e4lp av nedanst\u00e5ende fr\u00e5ga.<\/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>Acceptera kreditkortsbetalning med Authorize.Net<\/h3>\n<p>Du har kopierat API-nycklarna till ditt Authorize.Net-konto i f\u00f6reg\u00e5ende steg. Det \u00e4r dags att l\u00e4gga till dessa nycklar i PHP-koden. Spara dessa referenser i <code>config.php<\/code>filen. Jag l\u00e4gger ocks\u00e5 till databasanslutningen till den h\u00e4r filen.<\/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>Ers\u00e4tt platsh\u00e5llarna med de faktiska v\u00e4rdena. N\u00e4r vi testar betalningarna p\u00e5 sandl\u00e5dan passerade jag metoden <code>setTestMode<\/code>. N\u00e4r du \u00e4r redo att g\u00e5 vidare till produktion, ta bort \/ kommentera den h\u00e4r raden.<\/p>\n<p>I formul\u00e4ret vi har skapat ovan st\u00e4ller jag in <code>charge.php<\/code>som \u00e5tg\u00e4rds-URL. Det betyder att den faktiska koden som f\u00e5ngar kreditkortsbetalningen kommer att ligga i den h\u00e4r filen.<\/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>Nu kan du testa en betalning. F\u00e5 dessa <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">testkreditkortsnummer<\/a> f\u00f6r att testa betalningen. P\u00e5 det lyckade svaret b\u00f6r du f\u00e5 ditt transaktions-ID.<\/p>\n<p>\u00c4garen kan se transaktionerna p\u00e5 Dashboard Authorize.Net. Du hittar transaktioner under &quot;Oavslutade transaktioner&quot;. Authorize.Net l\u00f6ser senare transaktionen p\u00e5 egen hand och meddelar dig via e-post.<\/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=\"Acceptera kreditkortsbetalning med Authorize.Net Payment Gateway i PHP\" ><\/a><\/p>\n<p>Jag hoppas att du f\u00f6rst\u00e5r hur du accepterar kreditkortsbetalningar med Authorize.Net betalningsgateway. Dela dina tankar eller f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/paypal-payment-gateway-integration-i-php-med-paypal-rest-api\/\" title=\"PayPal Payment Gateway-integration i PHP med PayPal REST API\">PayPal Payment Gateway-integration i PHP med PayPal REST API<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/en-guide-for-randintegrering-pa-webbplats-med-php\/\" title=\"En guide f\u00f6r stripeintegrering p\u00e5 webbplatsen med PHP\">En guide f\u00f6r stripeintegrering p\u00e5 webbplatsen med PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/acceptera-kreditkortsbetalningar-med-paypal-payments-pro-i-php\/\" title=\"Acceptera kreditkortsbetalningar med Paypal Payments Pro i PHP\">Acceptera kreditkortsbetalningar med Paypal Payments Pro i PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r artikeln studerar vi hur man integrerar Authorize.net f\u00f6r att acceptera kreditkortsbetalning. Att l\u00e4gga till kreditkortsbetalningsalternativ \u00e4r mycket vanligt<\/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":[279],"tags":[850],"class_list":["post-29596","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=29596"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29596\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21609"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=29596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=29596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=29596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}