{"id":24259,"date":"2021-05-15T12:22:00","date_gmt":"2021-05-15T09:22:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24259"},"modified":"2021-10-18T02:18:35","modified_gmt":"2021-10-17T23:18:35","slug":"integration-de-la-passerelle-de-paiement-paykun-dans-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/integration-de-la-passerelle-de-paiement-paykun-dans-laravel\/","title":{"rendered":"Int\u00e9gration de la passerelle de paiement PayKun dans Laravel"},"content":{"rendered":"<p>G\u00e9rez-vous une boutique en ligne en Inde\u00a0? Vous recherchez probablement une passerelle de paiement via laquelle votre client peut payer en ligne.<\/p>\n<p><a href=\"https:\/\/paykun.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayKun<\/a> est une passerelle de paiement indienne qui accepte les paiements en ligne par carte de cr\u00e9dit, Net Banking, Wallet et UPI. Ils fournissent 2 types de plans pour les commer\u00e7ants &#8211; Standards et Enterprise. Vous pouvez consulter leur plan sur la page de <a href=\"https:\/\/paykun.com\/pricing\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tarification<\/a>. Dans cet article, nous \u00e9tudions comment int\u00e9grer la passerelle de paiement PayKun dans Laravel.<\/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=\"Int\u00e9gration de la passerelle de paiement PayKun dans Laravel\" ><\/a><\/p>\n<h3>Commencer<\/h3>\n<p>Pour commencer l&rsquo;int\u00e9gration de PayKun dans Laravel, vous devez d&rsquo;abord cr\u00e9er un compte sur <a href=\"https:\/\/dashboard.paykun.com\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PayKun<\/a>. Lors de la cr\u00e9ation du compte, g\u00e9n\u00e9rez des cl\u00e9s API \u00e0 partir de <strong>Param\u00e8tres-&gt; S\u00e9curit\u00e9-&gt; Cl\u00e9 API<\/strong>.<\/p>\n<p>Nous vous recommandons d&rsquo;abord d&rsquo;essayer l&rsquo;int\u00e9gration avec sandbox et si tout fonctionne comme pr\u00e9vu, passez \u00e0 la production. Vous pouvez g\u00e9n\u00e9rer des cl\u00e9s API sandbox pour un environnement sandbox de la m\u00eame mani\u00e8re que la production. Pour acc\u00e9der au tableau de bord du bac \u00e0 sable, cliquez sur l&rsquo;ic\u00f4ne en haut \u00e0 droite, puis sur \u00ab\u00a0Mode test\u00a0\u00bb.<\/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=\"Int\u00e9gration de la passerelle de paiement PayKun dans Laravel\" ><\/a><\/p>\n<p>Ensuite, obtenez votre identifiant de commer\u00e7ant \u00e0 partir de <strong>Mes comptes-&gt; Profil<\/strong>.<\/p>\n<h3>Configuration de base dans Laravel pour accepter le paiement \u00e0 l&rsquo;aide de PayKun<\/h3>\n<p>Afin de traiter le paiement \u00e0 l&rsquo;aide de PayKun, l&rsquo;identifiant du commer\u00e7ant et les cl\u00e9s API sont requis. Ajoutez donc ces valeurs dans le <code>.env<\/code>fichier.<\/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>Lorsque vos utilisateurs effectuent un paiement, vous devez stocker les d\u00e9tails de leur transaction dans la base de donn\u00e9es pour une utilisation ult\u00e9rieure. Cr\u00e9ons donc la migration \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan make:migration create_payments_table<\/code><\/pre>\n<p>Ouvrez ce fichier de migration et ajoutez le code ci-dessous dans la m\u00e9thode up.<\/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>Ex\u00e9cutez cette migration par commande\u00a0:<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Cette migration cr\u00e9era une table &lsquo;paiements&rsquo; dans votre base de donn\u00e9es. Comme nous devons stocker les transactions dans cette table, cr\u00e9ez un mod\u00e8le &lsquo;Paiement&rsquo; correspondant \u00e0 la table &lsquo;Paiements&rsquo;.<\/p>\n<pre><code>php artisan make:model Payment<\/code><\/pre>\n<p>Nous sommes tous configur\u00e9s avec une configuration de base et pouvons aller de l&rsquo;avant pour int\u00e9grer la biblioth\u00e8que PayKun dans notre projet Laravel.<\/p>\n<h3>Int\u00e9gration de la passerelle de paiement PayKun dans Laravel<\/h3>\n<p>PayKun a fourni des SDK pour PHP, .NET, Java, Python, etc. Nous allons utiliser leur <a href=\"https:\/\/github.com\/paykun-code\/paykun-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioth\u00e8que GitHub<\/a> cr\u00e9\u00e9e pour les applications PHP.<\/p>\n<p>Installez la biblioth\u00e8que PayKun dans votre projet Laravel \u00e0 l&rsquo;aide de la commande composer suivante\u00a0:<\/p>\n<pre><code>composer require paykun\/checkout<\/code><\/pre>\n<p>Si vous lisez sur leur page GitHub, vous pouvez ajouter autant de champs comme le client, les d\u00e9tails de facturation et d&rsquo;exp\u00e9dition. Mais pour les besoins du tutoriel, nous ne prendrons que le champ montant. Les utilisateurs peuvent \u00e9tendre le formulaire selon leurs besoins.<\/p>\n<p><strong>paiement.lame.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>Nous avons transmis l&rsquo;URL d&rsquo;action \u00e0 la route &lsquo;charge&rsquo;. Vous aurez besoin de quelques routes telles que l&rsquo;URL de r\u00e9ussite, l&rsquo;URL ayant \u00e9chou\u00e9, la charge, etc. D\u00e9finissons-la comme suit.<\/p>\n<p><strong>itin\u00e9raires\/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>La prochaine chose \u00e0 faire est de cr\u00e9er un fichier de contr\u00f4leur qui collectera le montant, d&rsquo;envoyer un utilisateur sur le site Web de PayKun pour le traitement du paiement, puis d&rsquo;ins\u00e9rer enfin les d\u00e9tails de la transaction dans la base de donn\u00e9es.<\/p>\n<pre><code>php artisan make:controller PaymentController<\/code><\/pre>\n<p>Ajoutez le code ci-dessous dans ce fichier de contr\u00f4leur qui g\u00e9rera tous les \u00e9l\u00e9ments li\u00e9s au paiement.<\/p>\n<p><strong>PaiementController.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>Si vous regardez le code du constructeur, nous avons pass\u00e9 le dernier param\u00e8tre comme &lsquo;false&rsquo; (valeur bool\u00e9enne). Lors de la mise en ligne, vous n&rsquo;avez pas besoin de passer ce param\u00e8tre. Toujours sur le mode de production, supprimez ou commentez la ligne ci-dessous dans la m\u00e9thode &lsquo;charge&rsquo;.<\/p>\n<pre><code>$this-&gt;gateway-&gt;setCustomFields(array('udf_1' =&gt; 'test'));<\/code><\/pre>\n<p>Pendant que vous testez le paiement sandbox, vous devez entrer des num\u00e9ros de carte de cr\u00e9dit factices que vous obtiendrez <a href=\"https:\/\/devzone.paylane.com\/integration-testing\/test-card-numbers\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>.<\/p>\n<p>C&rsquo;est \u00e7a! Nous esp\u00e9rons que vous comprenez l&rsquo;int\u00e9gration de la passerelle de paiement PayKun dans Laravel. Nous aimerions entendre vos pens\u00e9es dans la section des commentaires ci-dessous.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, nous \u00e9tudions l&rsquo;int\u00e9gration de la passerelle de paiement PayKun dans Laravel. PayKun est une passerelle de paiement indienne qui accepte les paiements par carte de cr\u00e9dit, 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":[205,497],"tags":[844],"class_list":["post-24259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-4","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24259"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20608"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}