{"id":3130,"date":"2021-03-05T21:22:48","date_gmt":"2021-03-05T21:22:48","guid":{"rendered":"https:\/\/documents.openpay.mx\/?p=3130"},"modified":"2024-04-18T22:04:56","modified_gmt":"2024-04-18T22:04:56","slug":"card-charge","status":"publish","type":"post","link":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html","title":{"rendered":"Card Charges"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3130\" class=\"elementor elementor-3130\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cbd4f1d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cbd4f1d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-38e9590\" data-id=\"38e9590\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a287d63 elementor-widget elementor-widget-text-editor\" data-id=\"a287d63\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h1 id=\"tocAnchor-1-1\">Charging a tokenized card<\/h1><p>Everyone likes to receive payments, this is why we start with a tutorial to see how to do it.<\/p><p>This tutorial uses the <a class=\"clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark\" href=\"https:\/\/documents.openpay.mx\/docs\/openpay-js.html\">Openpay.js<\/a>, library to send the card information directly to Openpay. Using this library, besides being the easiest way to save a card, it minimizes the scope of a PCI Compliance certification.<\/p><h3>To make a charge to a card we will do the following:<\/h3><center><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\" alt=\"To make a charge to a card we will do the following:\" width=\"700\" \/><\/center><p>Steps:<\/p><ol><li><a href=\"https:\/\/documents.openpay.mx\/docs\/fraud-tool.html\">Antifraud system implementation<\/a> to generate \"device_session_id\"<\/li><li>Create a token of debit or credit card using <a class=\"clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark\" href=\"https:\/\/documents.openpay.mx\/docs\/openpayjs.html\">Openpay.js<\/a><\/li><li>Send charge information to your server<\/li><li>Send a charge request to Openpay<\/li><li>Openpay will sent a charge request to issuing bank and will answer<\/li><\/ol><h2 id=\"tocAnchor-1-1-1\">Creating Forms<\/h2><p>We need to create a form to get the card information, saying the cards supported and the charge will be through Openpay.<\/p><p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/documents.openpay.mx\/wp-content\/uploads\/2022\/02\/ejemplo_cobro_tarjeta4-copia.png\" alt=\"Ejemplo de cobro con tarjeta\" width=\"700\" \/><\/p><p>Code of the form.<\/p><p><em><span style=\"color: #004481;\"><strong>Note:<\/strong><\/span> You can download the complete html <a href=\"https:\/\/public.openpay.mx\/Formulario_Tarjeta.zip\" target=\"_blank\" rel=\"noopener\">here<\/a><\/em><\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">form <\/span><span class=\"na\" style=\"color: #008080;\">action<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"#\"<\/span> <span class=\"na\" style=\"color: #008080;\">method<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"POST\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"payment-form\"<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"hidden\"<\/span> <span class=\"na\" style=\"color: #008080;\">name<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"token_id\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"token_id\"<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"hidden\"<\/span> <span class=\"na\" style=\"color: #008080;\">name<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"use_card_points\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"use_card_points\"<\/span> <span class=\"na\" style=\"color: #008080;\">value<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"false\"<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"pymnt-itm card active\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">h2<\/span><span class=\"p\">&gt;<\/span>Tarjeta de cr\u00e9dito o d\u00e9bito<span class=\"p\">&lt;\/<\/span><span class=\"nt\" style=\"color: #000080;\">h2<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"pymnt-cntnt\"<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"card-expl\"<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"credit\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">h4<\/span><span class=\"p\">&gt;<\/span>Credit Cards<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">h4<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"debit\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">h4<\/span><span class=\"p\">&gt;<\/span>Debit Cards<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">h4<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-row\"<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col l\"<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>Nombre del titular<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\"<\/span> <span class=\"na\" style=\"color: #008080;\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"Como aparece en la tarjeta\"<\/span> <span class=\"na\" style=\"color: #008080;\">autocomplete<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"off\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-openpay-card<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"holder_name\"<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col\"<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>N\u00famero de tarjeta<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\"<\/span> <span class=\"na\" style=\"color: #008080;\">autocomplete<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"off\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-openpay-card<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"card_number\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-row\"<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col l\"<\/span><span class=\"p\">&gt;<\/span>\n                        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>Fecha de expiraci\u00f3n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>\n                        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col half l\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input<\/span> <span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\"<\/span> <span class=\"na\" style=\"color: #008080;\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"Mes\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-openpay-card<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"expiration_month\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col half l\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input<\/span> <span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\"<\/span> <span class=\"na\" style=\"color: #008080;\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"A\u00f1o\" <\/span><span class=\"na\" style=\"color: #008080;\">data-openpay-card<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"expiration_year\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col cvv\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>C\u00f3digo de seguridad<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">label<\/span><span class=\"p\">&gt;<\/span>\n                        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-col half l\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">input<\/span> <span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\"<\/span> <span class=\"na\" style=\"color: #008080;\">placeholder<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"3 d\u00edgitos\"<\/span> <span class=\"na\" style=\"color: #008080;\">autocomplete<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"off\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-openpay-card<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"cvv2\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"openpay\"<\/span><span class=\"p\">&gt;&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"logo\"<\/span><span class=\"p\">&gt;<\/span>Transacciones realizadas v\u00eda:<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"shield\"<\/span><span class=\"p\">&gt;<\/span>Tus pagos se realizan de forma segura con encriptaci\u00f3n de 256 bits<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"sctn-row\"<\/span><span class=\"p\">&gt;<\/span>\n                    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">a<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"button rght\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"pay-button\"<\/span><span class=\"p\">&gt;<\/span>Pagar<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">a<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">form<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p>It\u2019s very important that the fields used to enter the card information have the <code>data_openpay_card<\/code> attribute because this allows the Openpay library to find the information.<\/p><p>Note that the attribute <span style=\"color: #e41182;\"><code>name<\/code> <\/span>isn\u2019t being used to store the card information , this is because when you submit the form to your server the card info doesn\u2019t travel in the request because it\u2019s only used to create the token.<\/p><p>In the previous example form don't include the fields \"amount\" and \"description\" but should be included in the server submit.<\/p><h2 id=\"tocAnchor-1-1-2\">Implementing antifraud system (Step 1)<\/h2><p>Import libraries to generate device id as follows:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">head<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span>\n        <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.11.0\/jquery.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span>\n        <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/js.openpay.mx\/openpay.v1.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">'text\/javascript'<\/span>\n  <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/js.openpay.mx\/openpay-data.v1.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">head<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p>This way you can generate the device_session_id string:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span><span class=\"p\">&gt;<\/span>\n <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"nb\" style=\"color: #008080;\">document<\/span><span class=\"p\">).<\/span><span class=\"nx\">ready<\/span><span class=\"p\">(<\/span><strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">setId<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'mzdtln0bmtms6o3kck8f'<\/span><span class=\"p\">);<\/span>\n  <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">setApiKey<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'pk_f0660ad5a39f4912872e24a7a660370c'<\/span><span class=\"p\">);<\/span>\n  <strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">deviceSessionId<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">deviceData<\/span><span class=\"p\">.<\/span><span class=\"nx\">setup<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"payment-form\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"deviceIdHiddenFieldName\"<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p>Parameter <code>payment-form<\/code>, must store the form id which contains charge information to send. Say to he library this form contains the hidden field with the <code>device_session_id<\/code>.<\/p><p>Parameter <code>deviceIdHiddenFieldName<\/code>, needs the hidden field name than will store <code>device_session_id<\/code>. This field is important if you will need to recover the fiel value then send it with submit action.<\/p><h2 id=\"tocAnchor-1-1-3\">Tokenizing and sending data (Steps 2 and 3)<\/h2><p>Once we created our form, we will set up the send button to create a token using the <a class=\"clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark\" href=\"https:\/\/documents.openpay.mx\/docs\/openpayjs.html\">Openpay.js<\/a>.<\/p><p class=\" translation-block\">First add the <a href=\"\/docs\/openpay-js.html\" target=\"_self\">Openpay.js<\/a> and JQuery files to the <code>head<\/code>:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">head<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span>\n        <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.11.0\/jquery.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span>\n        <span class=\"na\" style=\"color: #008080;\">src<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"https:\/\/js.openpay.mx\/openpay.v1.min.js\"<\/span><span class=\"p\">&gt;&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">head<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p class=\" translation-block\">Now let\u2019s set the <code>merchant-id<\/code> and the <code>public-key<\/code> to the Openpay library:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">script <\/span><span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"text\/javascript\"<\/span><span class=\"p\">&gt;<\/span>\n     <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"nb\" style=\"color: #008080;\">document<\/span><span class=\"p\">).<\/span><span class=\"nx\">ready<\/span><span class=\"p\">(<\/span><strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n            <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">setId<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'mzdtln0bmtms6o3kck8f'<\/span><span class=\"p\">);<\/span>\n            <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">setApiKey<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #008080;\">'pk_f0660ad5a39f4912872e24a7a660370c'<\/span><span class=\"p\">);<\/span>\n            <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">setSandboxMode<\/span><span class=\"p\">(<\/span><strong><span class=\"kc\">true<\/span><\/strong><span class=\"p\">);<\/span>\n    <span class=\"p\">});<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">script<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p>Finally we listen the clic event for \"pay\" button and change the submit action to make the card \"tokenization\":<\/p><figure class=\"highlight\"><pre><code class=\"language-javascript\" data-lang=\"javascript\"><span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#pay-button'<\/span><span class=\"p\">).<\/span><span class=\"nx\">on<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'click'<\/span><span class=\"p\">,<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n       <span class=\"nx\">event<\/span><span class=\"p\">.<\/span><span class=\"nx\">preventDefault<\/span><span class=\"p\">();<\/span>\n       <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"#pay-button\"<\/span><span class=\"p\">).<\/span><span class=\"nx\">prop<\/span><span class=\"p\">(<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"disabled\"<\/span><span class=\"p\">,<\/span> <strong><span class=\"kc\">true<\/span><\/strong><span class=\"p\">);<\/span>\n       <span class=\"nx\">OpenPay<\/span><span class=\"p\">.<\/span><span class=\"nx\">token<\/span><span class=\"p\">.<\/span><span class=\"nx\">extractFormAndCreate<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'payment-form'<\/span><span class=\"p\">,<\/span> <span class=\"nx\">success_callbak<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error_callbak<\/span><span class=\"p\">);<\/span>              \n<span class=\"p\">});<\/span><\/code><\/pre><\/figure><p>As you can see we are passing as a parameter the name of the form created, this is so the library gets the card information and makes the request to Openpay.<\/p><p>If everything works well, the method <strong><em>success_callback<\/em><\/strong> will be called to set the token id value <code>token_id<\/code> and the data will be sent to the server:<\/p><figure class=\"highlight\"><pre><code class=\"language-javascript\" data-lang=\"javascript\"><strong><span class=\"kd\">var<\/span><\/strong> <span class=\"nx\">success_callbak<\/span> <span class=\"o\">=<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n              <strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">token_id<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">;<\/span>\n              <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#token_id'<\/span><span class=\"p\">).<\/span><span class=\"nx\">val<\/span><span class=\"p\">(<\/span><span class=\"nx\">token_id<\/span><span class=\"p\">);<\/span>\n              <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#payment-form'<\/span><span class=\"p\">).<\/span><span class=\"nx\">submit<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">};<\/span><\/code><\/pre><\/figure><p>If there is a problem in the request, an alert will show the error:<\/p><figure class=\"highlight\"><pre><code class=\"language-javascript\" data-lang=\"javascript\"><strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">error_callbak<\/span> <span class=\"o\">=<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n     <strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">desc<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">description<\/span> <span class=\"o\">!=<\/span> <strong><span class=\"kc\">undefined<\/span> <span class=\"o\">?<\/span><\/strong>\n        <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">description<\/span> <span class=\"o\">:<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">;<\/span>\n     <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"ERROR [\"<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">status<\/span> <span class=\"o\">+<\/span> <span class=\"s2\" style=\"color: #e41182;\">\"] \"<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">desc<\/span><span class=\"p\">);<\/span>\n     <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"#pay-button\"<\/span><span class=\"p\">).<\/span><span class=\"nx\">prop<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"disabled\"<\/span><span class=\"p\">,<\/span> <strong><span class=\"kc\">false<\/span><\/strong><span class=\"p\">);<\/span>\n<span class=\"p\">};<\/span><\/code><\/pre><\/figure><p><a name=\"puntos\"><\/a><\/p><p style=\"text-align: center;\"><em><a>For more reference about the library please go to the <\/a><\/em><a class=\"clutterFree_existingDuplicate clutterFree_noIcon cf_div_theme_dark\" href=\"https:\/\/documents.openpay.mx\/docs\/openpayjs.html\"><em>Openpay.js<\/em><\/a><\/p><h2 id=\"tocAnchor-1-1-4\">Using reward points (Optional)<\/h2><p>Optionally, we can accept payments using reward points, if the card supports them.<\/p><p>For this we add a modal dialog, which will allow the user to confirm the use of reward points for the charge. In this case, we will use a modal from the Bootstrap library:<\/p><figure class=\"highlight\"><pre><code class=\"language-html\" data-lang=\"html\"><span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal fade\"<\/span> <span class=\"na\" style=\"color: #008080;\">role<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"dialog\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"card-points-dialog\"<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-dialog modal-sm\"<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-content\"<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-header\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">h4 <\/span><span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-title\"<\/span><span class=\"p\">&gt;<\/span>Pagar con Puntos<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">h4<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-body\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">p<\/span><span class=\"p\">&gt;<\/span>\u00bfDesea usar los puntos de su tarjeta para realizar este pago?<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">p<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal-footer\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">button<\/span> <span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"button\"<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"btn btn-default\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-dismiss<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"points-no-button\"<\/span><span class=\"p\">&gt;<\/span>No<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">button<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\" style=\"color: #000080;\">button<\/span> <span class=\"na\" style=\"color: #008080;\">type<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"button\"<\/span> <span class=\"na\" style=\"color: #008080;\">class<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"btn btn-primary\"<\/span> <span class=\"na\" style=\"color: #008080;\">data-dismiss<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"modal\"<\/span> <span class=\"na\" style=\"color: #008080;\">id<\/span><span class=\"o\">=<\/span><span class=\"s\" style=\"color: #e41182;\">\"points-yes-button\"<\/span><span class=\"p\">&gt;<\/span>Yes<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">button<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span>\n<span class=\"p\">&lt;<span style=\"color: #000080;\">\/<\/span><\/span><span class=\"nt\" style=\"color: #000080;\">div<\/span><span class=\"p\">&gt;<\/span><\/code><\/pre><\/figure><p>Now with the modal HTML code, we modify the function success_callback we previously defined, so it shows the modal dialog if the card supports reward points:<\/p><figure class=\"highlight\"><pre><code class=\"language-javascript\" data-lang=\"javascript\"><strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">success_callbak<\/span> <span class=\"o\">=<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n              <strong><span class=\"kd\">var<\/span> <\/strong><span class=\"nx\">token_id<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">;<\/span>\n              <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#token_id'<\/span><span class=\"p\">).<\/span><span class=\"nx\">val<\/span><span class=\"p\">(<\/span><span class=\"nx\">token_id<\/span><span class=\"p\">);<\/span>\n              <strong><span class=\"k\">if<\/span> <\/strong><span class=\"p\">(<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">card<\/span><span class=\"p\">.<\/span><span class=\"nx\">points_card<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n                  <span class=\"c1\">\/\/ Si la tarjeta permite usar puntos, mostrar el cuadro de di\u00e1logo<\/span>\n                  <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"#card-points-dialog\"<\/span><span class=\"p\">).<\/span><span class=\"nx\">modal<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"show\"<\/span><span class=\"p\">);<\/span>\n              <span class=\"p\">}<\/span> <strong><span class=\"k\">else<\/span> <\/strong><span class=\"p\">{<\/span>\n                  <span class=\"c1\">\/\/ De otra forma, realizar el pago inmediatamente<\/span>\n                  <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#payment-form'<\/span><span class=\"p\">).<\/span><span class=\"nx\">submit<\/span><span class=\"p\">();<\/span>\n              <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span><\/code><\/pre><\/figure><p>Now we will attach events to the modal's buttons in order to change the value of the hidden field use_card_points, and then send the payment request to the server:<\/p><figure class=\"highlight\"><pre><code class=\"language-javascript\" data-lang=\"javascript\"><span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"#points-yes-button\"<\/span><span class=\"p\">).<\/span><span class=\"nx\">on<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'click'<\/span><span class=\"p\">,<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(){<\/span>\n              <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#use_card_points'<\/span><span class=\"p\">).<\/span><span class=\"nx\">val<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'true'<\/span><span class=\"p\">);<\/span>\n              <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#payment-form'<\/span><span class=\"p\">).<\/span><span class=\"nx\">submit<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">});<\/span><\/code><\/pre><pre><code class=\"language-javascript\" data-lang=\"javascript\"><span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s2\" style=\"color: #e41182;\">\"#points-no-button\"<\/span><span class=\"p\">).<\/span><span class=\"nx\">on<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'click'<\/span><span class=\"p\">,<\/span> <strong><span class=\"kd\">function<\/span><\/strong><span class=\"p\">(){<\/span>\n        <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#use_card_points'<\/span><span class=\"p\">).<\/span><span class=\"nx\">val<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'false'<\/span><span class=\"p\">);<\/span>\n        <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'#payment-form'<\/span><span class=\"p\">).<\/span><span class=\"nx\">submit<\/span><span class=\"p\">();<\/span>\n        <span class=\"p\">});<\/span><\/code><\/pre><\/figure><blockquote><p><strong>Notes:<\/strong><\/p><ul><li>If the charge uses reward points, the server response may contain a message to be shown to the customer. In this case, it is required to display it in the purchase ticket. See <a href=\"https:\/\/documents.openpay.mx\/curl.html\">the API definition<\/a> for more details.<\/li><\/ul><\/blockquote><h2 id=\"tocAnchor-1-1-5\">Create a charge (Step 4 and 5)<\/h2><p>Now you only have to make the charge from your server, for this we\u2019ll create an Openpay instance with the <code>merchant-id<\/code> and <code>private-key<\/code> parameters and then use the form values to make the charge:<\/p><pre><code class=\"language-php\" data-lang=\"php\">\n<span class=\"nv\" style=\"color: #008080;\">$openpay<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Openpay<\/span><span class=\"o\">::<\/span><span class=\"na\" style=\"color: #008080;\">getInstance<\/span><span class=\"p\">(<\/span><span class=\"s1\" style=\"color: #e41182;\">'mzdtln0bmtms6o3kck8f'<\/span><span class=\"p\">,<\/span>\n  <span class=\"s1\" style=\"color: #e41182;\">'sk_e568c42a6c384b7ab02cd47d2e407cab'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nv\" style=\"color: #008080;\">$customer<\/span> <span class=\"o\">=<\/span> <strong><span class=\"k\">array<\/span><\/strong><span class=\"p\">(<\/span>\n     <span class=\"s1\" style=\"color: #e41182;\">'name'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"name\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\" style=\"color: #e41182;\">'last_name'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"last_name\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\" style=\"color: #e41182;\">'phone_number'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"phone_number\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\" style=\"color: #e41182;\">'email'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"email\"<\/span><span class=\"p\">],);<\/span>\n\n<span class=\"nv\" style=\"color: #008080;\">$chargeData<\/span> <span class=\"o\">=<\/span> <strong><span class=\"k\">array<\/span><\/strong><span class=\"p\">(<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'method'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\" style=\"color: #e41182;\">'card'<\/span><span class=\"p\">,<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'source_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"token_id\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'amount'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"amount\"<\/span><span class=\"p\">],<\/span> <span class=\"c1\">\/\/ formato n\u00famerico con hasta dos d\u00edgitos decimales. <\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'description'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"description\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'use_card_points'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"use_card_points\"<\/span><span class=\"p\">],<\/span> <span class=\"c1\">\/\/ Opcional, si estamos usando puntos<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'device_session_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\" style=\"color: #e41182;\">\"deviceIdHiddenFieldName\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\" style=\"color: #e41182;\">'customer'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\" style=\"color: #008080;\">$customer<\/span>\n    <span class=\"p\">);<\/span>\n\n<span class=\"nv\" style=\"color: #008080;\">$charge<\/span> <span class=\"o\">=<\/span> <span class=\"nv\" style=\"color: #008080;\">$openpay<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\" style=\"color: #008080;\">charges<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\" style=\"color: #008080;\">create<\/span><span class=\"p\">(<\/span><span class=\"nv\" style=\"color: #008080;\">$chargeData<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre><div class=\"php-code\"><figure class=\"highlight\"><pre><code class=\"language-php\" data-lang=\"php\">\n<span class=\"nv\">$openpay<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Openpay<\/span><span class=\"o\">::<\/span><span class=\"na\">getInstance<\/span><span class=\"p\">(<\/span><span class=\"s1\">'mzdtln0bmtms6o3kck8f'<\/span><span class=\"p\">,<\/span>\n  <span class=\"s1\">'sk_e568c42a6c384b7ab02cd47d2e407cab'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nv\">$customer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">array<\/span><span class=\"p\">(<\/span>\n     <span class=\"s1\">'name'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"name\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\">'last_name'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"last_name\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\">'phone_number'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"phone_number\"<\/span><span class=\"p\">],<\/span>\n     <span class=\"s1\">'email'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"email\"<\/span><span class=\"p\">],);<\/span>\n\n<span class=\"nv\">$chargeData<\/span> <span class=\"o\">=<\/span> <span class=\"k\">array<\/span><span class=\"p\">(<\/span>\n    <span class=\"s1\">'method'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'card'<\/span><span class=\"p\">,<\/span>\n    <span class=\"s1\">'source_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"token_id\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\">'amount'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"amount\"<\/span><span class=\"p\">],<\/span> <span class=\"c1\">\/\/ formato n\u00famerico con hasta dos d\u00edgitos decimales. <\/span>\n    <span class=\"s1\">'description'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"description\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\">'use_card_points'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"use_card_points\"<\/span><span class=\"p\">],<\/span> <span class=\"c1\">\/\/ Opcional, si estamos usando puntos<\/span>\n    <span class=\"s1\">'device_session_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$_POST<\/span><span class=\"p\">[<\/span><span class=\"s2\">\"deviceIdHiddenFieldName\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"s1\">'customer'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$customer<\/span>\n    <span class=\"p\">);<\/span>\n\n<span class=\"nv\">$charge<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$openpay<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">charges<\/span><span class=\"o\">-&gt;<\/span><span class=\"na\">create<\/span><span class=\"p\">(<\/span><span class=\"nv\">$chargeData<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre><\/figure><\/div><p><strong>Ready!!<\/strong> We have created a card charge.<\/p><p>If there is an error we will receive an exception which we must capture and handle, for more information consult <a href=\"https:\/\/documents.openpay.mx\/errors.html\">the errors section<\/a><\/p><p><span style=\"font-size: 10pt; ; color: #004481;\"><br \/><em><strong>Notes:<\/strong><\/em><\/span><\/p><ul><li><span style=\"font-size: 10pt;\"><em>The fields amount, description, etc.. that not are presents in the example form, are data of your aplication an should be obtain before of the payment form.<\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>In the amount field, a string with decimal point format could be used.<\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>If you want to know how to do this process in a different language, please go to the <a href=\"https:\/\/documents.openpay.mx\/docs\/introduction.html\">integration section.<\/a>.<\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>The full HTML code is <a href=\"http:\/\/public.openpay.mx\/Formulario_Tarjeta.zip\">here<\/a>. <strong>(The page does not work completely, you must download and make the POST page implementation on your server).<\/strong>.<\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>Make sure your integration meets version compatibility requirements <a href=\"https:\/\/documents.openpay.mx\/docs\/versions.html\">see details<\/a><\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>You can simulate different results using the cards <a href=\"https:\/\/documents.openpay.mx\/docs\/testing.html\">Testing<\/a><\/em><\/span><\/li><li><span style=\"font-size: 10pt;\"><em>Implement the <a href=\"https:\/\/documents.openpay.mx\/docs\/webhooks.html\">Notifications<\/a> to know the status of payments in real time<\/em><\/span><\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Cargo con tarjeta tokenizada A todos nos gusta recibir pagos, es por ello empezaremos con un gu\u00eda para ver la forma de hacerlo. Esta gu\u00eda hace uso de la librer\u00eda de Openpay.js, para enviar la informaci\u00f3n de la tarjeta directamente a Openpay. Usando esta librer\u00eda aparte de ser la forma m\u00e1s sencilla de guardar una&hellip;&nbsp;<a href=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Card Charges<\/span><\/a><\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[133],"tags":[],"class_list":["post-3130","post","type-post","status-publish","format-standard","hentry","category-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pagos con tarjeta | Openpay<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pagos con tarjeta | Openpay\" \/>\n<meta property=\"og:description\" content=\"Cargo con tarjeta tokenizada A todos nos gusta recibir pagos, es por ello empezaremos con un gu\u00eda para ver la forma de hacerlo. Esta gu\u00eda hace uso de la librer\u00eda de Openpay.js, para enviar la informaci\u00f3n de la tarjeta directamente a Openpay. Usando esta librer\u00eda aparte de ser la forma m\u00e1s sencilla de guardar una&hellip;&nbsp;Read More &raquo;Pagos con tarjeta\" \/>\n<meta property=\"og:url\" content=\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html\/\" \/>\n<meta property=\"og:site_name\" content=\"Openpay\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-05T21:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-18T22:04:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\" \/>\n<meta name=\"author\" content=\"user\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"user\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#article\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html\"},\"author\":{\"name\":\"user\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7\"},\"headline\":\"Pagos con tarjeta\",\"datePublished\":\"2021-03-05T21:22:48+00:00\",\"dateModified\":\"2024-04-18T22:04:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html\"},\"wordCount\":949,\"publisher\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\",\"articleSection\":[\"Documentaci\u00f3n\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html\",\"name\":\"Pagos con tarjeta | Openpay\",\"isPartOf\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage\"},\"image\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\",\"datePublished\":\"2021-03-05T21:22:48+00:00\",\"dateModified\":\"2024-04-18T22:04:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage\",\"url\":\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\",\"contentUrl\":\"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/documents-mx-dev.opdevhm.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pagos con tarjeta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#website\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/\",\"name\":\"Openpay\",\"description\":\"Openpay a BBVA Company\",\"publisher\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/documents-mx-dev.opdevhm.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#organization\",\"name\":\"Openpay Soporte\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"contentUrl\":\"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png\",\"width\":290,\"height\":90,\"caption\":\"Openpay Soporte\"},\"image\":{\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7\",\"name\":\"user\",\"url\":\"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/author\/berni\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pagos con tarjeta | Openpay","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html\/","og_locale":"en_US","og_type":"article","og_title":"Pagos con tarjeta | Openpay","og_description":"Cargo con tarjeta tokenizada A todos nos gusta recibir pagos, es por ello empezaremos con un gu\u00eda para ver la forma de hacerlo. Esta gu\u00eda hace uso de la librer\u00eda de Openpay.js, para enviar la informaci\u00f3n de la tarjeta directamente a Openpay. Usando esta librer\u00eda aparte de ser la forma m\u00e1s sencilla de guardar una&hellip;&nbsp;Read More &raquo;Pagos con tarjeta","og_url":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/card-charge.html\/","og_site_name":"Openpay","article_published_time":"2021-03-05T21:22:48+00:00","article_modified_time":"2024-04-18T22:04:56+00:00","og_image":[{"url":"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png"}],"author":"user","twitter_card":"summary_large_image","twitter_misc":{"Written by":"user","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#article","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html"},"author":{"name":"user","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7"},"headline":"Pagos con tarjeta","datePublished":"2021-03-05T21:22:48+00:00","dateModified":"2024-04-18T22:04:56+00:00","mainEntityOfPage":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html"},"wordCount":949,"publisher":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization"},"image":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage"},"thumbnailUrl":"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png","articleSection":["Documentaci\u00f3n"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html","url":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html","name":"Pagos con tarjeta | Openpay","isPartOf":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage"},"image":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage"},"thumbnailUrl":"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png","datePublished":"2021-03-05T21:22:48+00:00","dateModified":"2024-04-18T22:04:56+00:00","breadcrumb":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#primaryimage","url":"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png","contentUrl":"https:\/\/public.openpay.mx\/images\/Cargo_con_tarjetas.png"},{"@type":"BreadcrumbList","@id":"https:\/\/documents-mx-dev.opdevhm.com\/docs\/card-charge.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/documents-mx-dev.opdevhm.com\/"},{"@type":"ListItem","position":2,"name":"Pagos con tarjeta"}]},{"@type":"WebSite","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#website","url":"https:\/\/documents-mx-dev.opdevhm.com\/","name":"Openpay","description":"Openpay a BBVA Company","publisher":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/documents-mx-dev.opdevhm.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#organization","name":"Openpay Soporte","url":"https:\/\/documents-mx-dev.opdevhm.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/","url":"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png","contentUrl":"https:\/\/documents-mx-dev.opdevhm.com\/wp-content\/uploads\/2020\/05\/logo.png","width":290,"height":90,"caption":"Openpay Soporte"},"image":{"@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/documents-mx-dev.opdevhm.com\/#\/schema\/person\/4c704d548de0c4eed7ac90530bf655a7","name":"user","url":"https:\/\/documents-mx-dev.opdevhm.com\/en\/docs\/author\/berni"}]}},"_links":{"self":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts\/3130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/comments?post=3130"}],"version-history":[{"count":0,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/posts\/3130\/revisions"}],"wp:attachment":[{"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/media?parent=3130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/categories?post=3130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/documents-mx-dev.opdevhm.com\/en\/wp-json\/wp\/v2\/tags?post=3130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}