{"id":1629,"date":"2024-08-02T10:47:31","date_gmt":"2024-08-02T08:47:31","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1629"},"modified":"2024-08-02T10:47:32","modified_gmt":"2024-08-02T08:47:32","slug":"006-pagos-online-con-fetch-y-stripe","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/javascript\/javascript-practico\/17-ejercicios-con-ajax\/006-pagos-online-con-fetch-y-stripe\/","title":{"rendered":"006. Pagos Online con Fetch y Stripe"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Stripe<\/strong> tiene su propia <strong>API<\/strong> que en la mayor parte del mundo, este servicio de cobro est\u00e1 habilitado. Es una excelente opci\u00f3n si disponemos de un sitio de correo electr\u00f3nico. Desde el <strong>Dashboard<\/strong> puedes hacer diferentes cosas y para los desarrolladores tiene una gran variedad de diferentes lenguajes de programaci\u00f3n.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Lo m\u00e1s interesante es que el <strong>checkout<\/strong> para hacer una compra en linea a trav\u00e9s de una tarjeta de cr\u00e9dito, <strong>Stripe<\/strong> tiene una soluci\u00f3n que podemos implementar completamente con c\u00f3digo <strong>frontend<\/strong>, es decir, con <strong>Javascript<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo vamos a crear los productos en nuestro <strong>Dashboard<\/strong> de <a href=\"https:\/\/stripe.com\/es\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Stripe<\/strong><\/a>, en el siguiente cap\u00edtulo accederemos a los productos din\u00e1micamente con <strong>Ajax<\/strong>, generando una p\u00e1gina donde est\u00e9n nuestros productos, y en un tercer cap\u00edtulo veremos la soluci\u00f3n del lado del cliente que ofrece <strong>Stripe<\/strong> con pura programaci\u00f3n <strong>Javascript<\/strong> para poder hacer las transacciones correspondientemente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En <strong>Stripe<\/strong> tenemos una secci\u00f3n completa para desarrolladores, como se est\u00e1 tratando con datos sensibles, los <strong>endpoints<\/strong> piden una autenticaci\u00f3n, para lo que tenemos que ir a las claves <strong>API<\/strong>, y nos van a proporcionar dos claves, la <strong>clave p\u00fablica<\/strong> y la <strong>clave secreta<\/strong>, ambas las necesitamos, ya que en diferentes momentos las va a solicitar el <strong>API<\/strong> de <strong>Stripe<\/strong>. La llave secreta comienza por <em>sk<\/em> (<strong>secret key<\/strong>) y <em>pk<\/em> (<strong>public key<\/strong>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo crearemos productos desde la plataforma de <strong>Stripe<\/strong>, para lo que hay que hacerse una cuenta de <strong>Stripe<\/strong>, y para hacer pruebas, existe la opci\u00f3n de ponerla en modo de prueba.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez creados los productos a trav\u00e9s del <strong>dashboard<\/strong> de <strong>Stripe<\/strong>, vamos a crear un archivo llamado <em>stripe-checkout.html<\/em>, donde vamos a comenzar a escribir nuestro c\u00f3digo. En el mismo crearemos un espacio donde se ir\u00e1n cargando los diferentes productos que hemos creado en nuestra cuenta de <strong>Stripe<\/strong>. Vamos a trabajar con la t\u00e9cnica de los <strong>templates<\/strong>, que vimos en cap\u00edtulos pasados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para guardar las llaves secretas vamos a trabajar con <strong>m\u00f3dulos<\/strong>, para que \u00fanicamente nosotros veamos nuestras <strong>llaves secretas<\/strong>. Tambi\u00e9n hay que mandar a llamar al <strong>script<\/strong> de <strong>Stripe<\/strong>, en este caso trabajaremos con uno que habla de la librer\u00eda <strong><em>stripe.js<\/em><\/strong>, que la podemos encontrar desde <a href=\"https:\/\/stripe.com\/docs\/js\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/stripe.com\/docs\/js<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a crear tambi\u00e9n un archivo denominado <em>checkout-stripe.js<\/em>, que va a ser el archivo que programaremos, y lo programaremos por m\u00f3dulos. Adicionalmente crearemos un archivo denominado <em>stripe-keys.js<\/em>, que traer\u00e1 las llaves p\u00fablicas, para que no est\u00e9n a la vista.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Nota<\/strong>: adem\u00e1s de acceder al <strong>endpoint<\/strong> de los productos, tenemos que acceder tambi\u00e9n al <strong>endpoint<\/strong> de los precios de los productos.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Para preparar el <strong>checkout<\/strong>, tenemos que ir a la documentaci\u00f3n de <strong>Checkout Sessions<\/strong> de <strong>Stripe<\/strong>. Es un m\u00e9todo que nos permitir\u00e1 interactuar con el formulario de pago que ya est\u00e1 en la infraestructura de <strong>Stripe<\/strong>, lo \u00fanico que tenemos que hacer es programar al evento <strong><em>click<\/em> <\/strong>de cada uno de los productos que tenemos en nuestro <strong>front<\/strong>, mandar llamar este servicio, nos pedir\u00e1 la llave p\u00fablica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Archivos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En el siguiente ZIP est\u00e1n todos los archivos de este ejercicio.<\/p>\n\n\n\n<div class=\"wp-block-file alignleft\"><a id=\"wp-block-file--media-332b2545-651d-4357-86fd-8b2174bbd643\" href=\"https:\/\/blog.sutilweb.eu\/wp-content\/uploads\/2024\/08\/Stripe.zip\">Stripe<\/a><a href=\"https:\/\/blog.sutilweb.eu\/wp-content\/uploads\/2024\/08\/Stripe.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-332b2545-651d-4357-86fd-8b2174bbd643\">Descarga<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Stripe tiene su propia API que en la mayor parte del mundo, este servicio de cobro est\u00e1 habilitado. Es una excelente opci\u00f3n&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1609,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1629","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Stripe tiene su propia API que en la mayor parte del mundo, este servicio de cobro est\u00e1 habilitado. Es una excelente opci\u00f3n...","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1629"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1629\/revisions"}],"predecessor-version":[{"id":1632,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1629\/revisions\/1632"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1609"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}