{"id":24525,"date":"2021-05-15T12:22:00","date_gmt":"2021-05-15T09:22:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24525"},"modified":"2021-10-17T19:12:26","modified_gmt":"2021-10-17T16:12:26","slug":"paykuni-makseluusi-integreerimine-laravelis","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/paykuni-makseluusi-integreerimine-laravelis\/","title":{"rendered":"PayKuni maksel\u00fc\u00fcsi integreerimine Laravelis"},"content":{"rendered":"<p>Kas teil on India veebipood? Siis otsite t\u00f5en\u00e4oliselt maksev\u00e4ravat, mille kaudu teie klient saab veebis maksta.<\/p>\n<p><a href=\"https:\/\/paykun.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayKun<\/a> on India <a href=\"https:\/\/paykun.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">maksev\u00e4rav,<\/a> mis aktsepteerib makseid veebis, kasutades krediitkaarti, Net Banking, Wallet ja UPI. Nad pakuvad kaupmeestele kahte t\u00fc\u00fcpi plaane &#8211; Standardid ja Ettev\u00f5tlus. Nende paketti saate vaadata <a href=\"https:\/\/paykun.com\/pricing\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hinnakujunduse<\/a> lehelt. Selles artiklis uurime, kuidas integreerida PayKuni maksel\u00fc\u00fcsi Laravelis.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20607-60820dd485eb9.jpg\" 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-20607-60820dd485eb9.jpg\" alt=\"PayKuni maksel\u00fc\u00fcsi integreerimine Laravelis\" ><\/a><\/p>\n<h3>Alustamine<\/h3>\n<p>Laraveli PayKuni integreerimise alustamiseks peate k\u00f5igepealt looma konto <a href=\"https:\/\/dashboard.paykun.com\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayKunis<\/a>. Konto loomisel genereerige API-v\u00f5tmed men\u00fc\u00fcst <strong>Seaded-&gt; Turvalisus-&gt; API-v\u00f5ti<\/strong>.<\/p>\n<p>Esmalt soovitame k\u00f5igepealt proovida liivakastiga integreerimist ja kui k\u00f5ik t\u00f6\u00f6tab ootusp\u00e4raselt, siis minge tootmiseks. Liivakasti API v\u00f5tmeid saate liivakasti keskkonna jaoks genereerida samamoodi nagu tootmist. Liivakasti armatuurlauale sisenemiseks kl\u00f5psake paremas \u00fclanurgas oleval ikoonil ja seej\u00e4rel nupul \u201eTestre\u017eiim&quot;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20607-60820dd4e751e.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-20607-60820dd4e751e.png\" alt=\"PayKuni maksel\u00fc\u00fcsi integreerimine Laravelis\" ><\/a><\/p>\n<p>J\u00e4rgmisena hankige oma kaupmehe ID jaotisest <strong>Minu kontod-&gt; Profiil<\/strong>.<\/p>\n<h3>Laraveli p\u00f5hiseadistus PayKuni abil makse aktsepteerimiseks<\/h3>\n<p>PayKuni abil makse t\u00f6\u00f6tlemiseks on vaja kaupmehe ID ja API v\u00f5tmeid. Nii lisage need v\u00e4\u00e4rtused <code>.env<\/code>faili.<\/p>\n<pre><code>PAYKUN_ACCESS_TOKEN=PASTE_ACCESS_TOKEN_HERE\nPAYKUN_KEY_SECRET=PASTE_API_KEY_SECRET_HERE\nPAYKUN_MERCHANT_ID=PASTE_MERCHANT_ID_HERE<\/code><\/pre>\n<p>Kui teie kasutajad teevad makse, peate nende tehingu \u00fcksikasjad hilisemaks kasutamiseks andmebaasi salvestama. Niisiis, loome migratsiooni k\u00e4suga:<\/p>\n<pre><code>php artisan make:migration create_payments_table<\/code><\/pre>\n<p>Avage see r\u00e4ndefail ja lisage allpool olev meetod up-meetodisse.<\/p>\n<pre><code>&lt;?php\n...\n...\n\u00a0\npublic function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('payments', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;bigIncrements('id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payment_id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payer_email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payer_mobile');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;float('amount', 10, 2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payment_status');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>K\u00e4ivitage see migreerimine k\u00e4suga:<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Selle \u00fcleviimise korral luuakse teie andmebaasi tabel \u201emaksed&#8221;. Kuna peame selles tabelis tehingud salvestama, looge tabelile \u201emaksed&#8221; vastav mudel \u201eMakse&#8221;.<\/p>\n<pre><code>php artisan make:model Payment<\/code><\/pre>\n<p>Oleme k\u00f5ik seadistanud p\u00f5hiseadistusega ja saame PayKuni teegi integreerimisega oma Laraveli projekti j\u00e4tkata.<\/p>\n<h3>PayKuni maksel\u00fc\u00fcsi integreerimine Laravelis<\/h3>\n<p>PayKun pakub SDK-sid PHP, .NET, Java, Python jne jaoks. Kasutame nende PHP-rakenduste jaoks loodud <a href=\"https:\/\/github.com\/paykun-code\/paykun-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHubi teeki<\/a>.<\/p>\n<p>Paigaldage PayKuni teek oma Laraveli projekti j\u00e4rgmise helilooja k\u00e4suga:<\/p>\n<pre><code>composer require paykun\/checkout<\/code><\/pre>\n<p>Kui loete nende GitHubi lehelt, saate lisada nii palju v\u00e4lju nagu klient, arveldus ja saatmise \u00fcksikasjad. Kuid \u00f5petuse huvides v\u00f5tame v\u00e4lja ainult summa. Kasutajad saavad vormi vastavalt oma n\u00f5uetele laiendada.<\/p>\n<p><strong>payment.blade.php<\/strong><\/p>\n<pre><code>&lt;form action=\"{{ url('charge') }}\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"amount\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Pay Now\"&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Edastasime toimingu URL-i marsruudile &#8216;laadimine&#8217;. Te vajate m\u00f5nda marsruuti, n\u00e4iteks \u00f5nnestunud URL, eba\u00f5nnestunud URL, tasu jne. M\u00e4\u00e4ratleme see j\u00e4rgmiselt.<\/p>\n<p><strong>marsruudid \/ web.php<\/strong><\/p>\n<pre><code>Route::get('payment', 'PaymentController@index');\nRoute::post('charge', 'PaymentController@charge');\nRoute::get('paymentsuccess', 'PaymentController@payment_success');\nRoute::get('paymenterror', 'PaymentController@payment_error');<\/code><\/pre>\n<p>J\u00e4rgmine asi, mida tuleb teha, on luua kontrolleri fail, mis kogub summa, saadab kasutaja PayKuni veebisaidile makse t\u00f6\u00f6tlemiseks ja seej\u00e4rel sisestab tehingu \u00fcksikasjad l\u00f5puks andmebaasi.<\/p>\n<pre><code>php artisan make:controller PaymentController<\/code><\/pre>\n<p>Lisage sellesse kontrollerifaili allpool olev kood, mis haldab k\u00f5iki maksetega seotud asju.<\/p>\n<p><strong>PaymentController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse PaykunCheckoutPayment;\nuse AppPayment as PaymentModel;\n\u00a0\nclass PaymentController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public $gateway;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0public function __construct()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway = new Payment(env('PAYKUN_MERCHANT_ID'), env('PAYKUN_ACCESS_TOKEN'), env('PAYKUN_KEY_SECRET'), false); \/\/ here we pass last parameter as false to enable sandbox mode.\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return view('payment');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function charge(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($request-&gt;input('submit'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setCustomFields(array('udf_1' =&gt; 'test')); \/\/remove or comment this line when go live\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;initOrder('ORD'.uniqid(), 'My Product Name', $request-&gt;input('amount'), url('paymentsuccess'), url('paymenterror'));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Add Customer\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;addCustomer('', '', '');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Add Shipping address\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;addShippingAddress('', '', '', '', '');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Add Billing Address\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;addBillingAddress('', '', '', '', '');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $this-&gt;gateway-&gt;submit();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function payment_success(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($request-&gt;input('payment-id'))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionData = $this-&gt;gateway-&gt;getTransactionInfo($request-&gt;input('payment-id'));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($transactionData['status'])\n\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\u00a0\u00a0\u00a0\u00a0$arr_transaction = $transactionData['data']['transaction'];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Check if payment_id already exists in the database\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$isPaymentExist = PaymentModel::where('payment_id', $arr_transaction['payment_id'])-&gt;first();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!$isPaymentExist)\n\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment = new PaymentModel;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payment_id = $arr_transaction['payment_id'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payer_email = $arr_transaction['customer']['email_id'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payer_mobile = $arr_transaction['customer']['mobile_no'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;amount = $arr_transaction['order']['gross_amount'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payment_status = $arr_transaction['status'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;save();\n\u00a0\u00a0\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\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Payment is successful. Your transaction id is: \". $arr_transaction['payment_id'];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function payment_error(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Something went wrong. Try again later.\";\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Kui vaatate konstruktori koodi, edastasime viimase parameetri v\u00e4\u00e4rana (t\u00f5ev\u00e4\u00e4rtus). Otse\u00fclekande ajal ei pea te seda parameetrit edastama. Eemaldage v\u00f5i kommenteerige allalaadimismeetodil ka tootmisre\u017eiimi.<\/p>\n<pre><code>$this-&gt;gateway-&gt;setCustomFields(array('udf_1' =&gt; 'test'));<\/code><\/pre>\n<p>Liivakasti makse testimise ajal peate sisestama n\u00e4ilise krediitkaardi numbri, mille saate <a href=\"https:\/\/devzone.paylane.com\/integration-testing\/test-card-numbers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">siit<\/a>.<\/p>\n<p>See selleks! Loodame, et m\u00f5istate PayKuni maksev\u00e4rava integreerimist Laravelis. Tahaksime teie m\u00f5tteid kuulda allpool olevas kommentaaride jaotises.<\/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>Selles artiklis uurime PayKuni maksev\u00e4rava integreerimist Laravelis. PayKun on India maksel\u00fc\u00fcs, mis aktsepteerib krediitkaardiga UPI,<\/p>\n","protected":false},"author":1,"featured_media":20608,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[206,498],"tags":[842],"class_list":["post-24525","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-5","category-laravel2-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=24525"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24525\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/20608"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=24525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=24525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=24525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}