﻿1
00:00:01,060 --> 00:00:03,650
‫Instructor: Entonces, en este video integremos

2
00:00:03,650 --> 00:00:07,240
‫Stripe en nuestro backend creando ese punto final de API

3
00:00:07,240 --> 00:00:10,983
‫que creará y enviará una sesión de pago de Stripe.

4
00:00:12,870 --> 00:00:15,717
‫Entonces, en este punto, vamos a empezar a crear

5
00:00:15,717 --> 00:00:17,110
‫nuestro próximo recurso.

6
00:00:17,110 --> 00:00:18,860
‫Y esas son las reservas.

7
00:00:18,860 --> 00:00:21,413
‫Y empezaré aquí con las rutas de reserva.

8
00:00:24,995 --> 00:00:25,828
‫Así

9
00:00:27,200 --> 00:00:29,100
‫que reservando rutas. js.

10
00:00:29,100 --> 00:00:31,660
‫Y lo hemos hecho tantas veces ahora.

11
00:00:31,660 --> 00:00:33,150
‫Entonces, seguiré copiando todo este

12
00:00:33,150 --> 00:00:34,480
‫código y lo

13
00:00:35,890 --> 00:00:37,843
‫pondré aquí en las rutas de reserva.

14
00:00:39,410 --> 00:00:42,073
‫Y luego simplemente elimine todo esto.

15
00:00:44,230 --> 00:00:45,923
‫Y también este.

16
00:00:47,310 --> 00:00:50,060
‫Tampoco necesitamos parámetros de combinación y tendremos

17
00:00:51,000 --> 00:00:54,530
‫un controlador de reservas en lugar de un controlador

18
00:00:54,530 --> 00:00:55,593
‫de revisión.

19
00:00:57,850 --> 00:01:02,203
‫Así que el controlador de reservas, vamos a crearlo.

20
00:01:03,844 --> 00:01:04,677
‫Entonces. js que parece

21
00:01:09,317 --> 00:01:10,170
‫correcto e integremos también

22
00:01:11,520 --> 00:01:12,570
‫esto directamente en la aplicación. js.

23
00:01:13,460 --> 00:01:17,503
‫Así que pongámoslo aquí después

24
00:01:18,970 --> 00:01:20,970
‫del enrutador de revisión.

25
00:01:20,970 --> 00:01:22,423
‫Así que aquí

26
00:01:25,430 --> 00:01:29,940
‫son solo reservas nuevamente y luego, por supuesto, aquí abajo

27
00:01:32,100 --> 00:01:34,370
‫integramos eso en nuestra API.

28
00:01:34,370 --> 00:01:35,513
‫Entonces las

29
00:01:40,190 --> 00:01:42,220
‫reservas y aquí las reservas enrutador.

30
00:01:43,360 --> 00:01:44,913
‫Y creo que solo debería estar reservando.

31
00:01:46,970 --> 00:01:49,223
‫Así que arreglemos eso aquí también.

32
00:01:50,170 --> 00:01:52,703
‫Y de hecho lo llamamos router de reserva.

33
00:01:54,180 --> 00:01:57,010
‫Y lo mismo aquí, no se trata de reservas,

34
00:01:57,010 --> 00:01:58,880
‫sino de reservas de rutas.

35
00:01:58,880 --> 00:02:00,700
‫Así que dale una oportunidad.

36
00:02:00,700 --> 00:02:01,863
‫Cierra este y

37
00:02:04,100 --> 00:02:05,990
‫este y este aquí también.

38
00:02:05,990 --> 00:02:09,090
‫Y ahora sigamos adelante y creemos

39
00:02:09,090 --> 00:02:11,670
‫nuestra primera ruta aquí.

40
00:02:11,670 --> 00:02:13,083
‫Así que vamos a enrutar. get y la ruta

41
00:02:14,980 --> 00:02:19,980
‫que creará aquí, una vez más, no seguirá

42
00:02:20,930 --> 00:02:24,160
‫el principio del resto porque este no se trata realmente

43
00:02:24,160 --> 00:02:26,630
‫de crear, obtener o actualizar ninguna reserva.

44
00:02:26,630 --> 00:02:30,080
‫En cambio, esta ruta solo será para que el

45
00:02:30,080 --> 00:02:33,060
‫cliente obtenga una sesión de pago.

46
00:02:33,060 --> 00:02:35,390
‫Así que, de hecho, llamemos a esta

47
00:02:35,390 --> 00:02:37,140
‫única sesión de pago.

48
00:02:38,810 --> 00:02:41,733
‫Luego, debemos proteger esta ruta para

49
00:02:43,060 --> 00:02:45,600
‫que solo los usuarios

50
00:02:45,600 --> 00:02:48,820
‫autenticados puedan obtener una sesión de pago.

51
00:02:48,820 --> 00:02:50,380
‫Entonces eso tiene sentido, ¿verdad?

52
00:02:50,380 --> 00:02:51,863
‫Y luego agregue el controlador de reserva.

53
00:02:52,840 --> 00:02:55,603
‫Vamos a crear un controlador

54
00:02:56,460 --> 00:02:59,253
‫de ruta llamado obtener sesión de pago.

55
00:03:02,477 --> 00:03:06,558
‫Está bien.

56
00:03:06,558 --> 00:03:07,391
‫Copiemos

57
00:03:08,512 --> 00:03:12,422
‫este y creémoslo aquí en las exportaciones. getCheckoutSession luego la solicitud responde a

58
00:03:12,422 --> 00:03:14,839
‫continuación.

59
00:03:16,600 --> 00:03:19,513
‫Y ahora empecemos a trabajar.

60
00:03:21,910 --> 00:03:24,740
‫Ahora, en realidad, hay una cosa más que debemos hacer aquí en

61
00:03:24,740 --> 00:03:27,230
‫las rutas que es especificar un parámetro de URL.

62
00:03:27,230 --> 00:03:31,550
‫Y ese será el ID de la gira.

63
00:03:31,550 --> 00:03:34,083
‫De acuerdo, básicamente queremos que el cliente envíe

64
00:03:35,970 --> 00:03:39,350
‫la identificación del tour que se está comenzando a reservar actualmente.

65
00:03:39,350 --> 00:03:42,920
‫Y eso es para que podamos completar la sesión de pago con

66
00:03:42,920 --> 00:03:46,010
‫todos los datos necesarios, como el nombre del tour y

67
00:03:46,010 --> 00:03:48,230
‫el precio del tour y todo eso.

68
00:03:48,230 --> 00:03:52,220
‫Muy bien, ahora tenemos acceso a la identificación del recorrido en esta

69
00:03:52,220 --> 00:03:55,780
‫función de controlador y, por lo tanto, lo primero que vamos

70
00:03:55,780 --> 00:03:57,470
‫a hacer es encontrar

71
00:03:57,470 --> 00:04:00,030
‫ese recorrido en nuestra base de datos.

72
00:04:00,030 --> 00:04:02,610
‫De acuerdo, para eso necesitamos, por supuesto, el modelo de gira.

73
00:04:02,610 --> 00:04:06,260
‫Así que vayamos aquí al controlador de gira

74
00:04:06,260 --> 00:04:09,210
‫y obtengamos eso desde allí.

75
00:04:09,210 --> 00:04:11,190
‫También vamos a necesitar

76
00:04:11,190 --> 00:04:14,120
‫este catchAsync y realmente todo esto.

77
00:04:14,120 --> 00:04:15,793
‫Así que lo estoy copiando todo e incluso

78
00:04:16,870 --> 00:04:18,510
‫si no lo necesito de inmediato,

79
00:04:18,510 --> 00:04:20,730
‫probablemente lo necesitaré un poco más tarde de todos modos.

80
00:04:20,730 --> 00:04:23,363
‫Está bien.

81
00:04:24,629 --> 00:04:25,462
‫Así que diseñemos nuestros pasos aquí nuevamente.

82
00:04:27,840 --> 00:04:30,600
‫Así que obtén el tour reservado actualmente.

83
00:04:30,600 --> 00:04:35,600
‫Luego, como segundo paso, creamos la sesión de

84
00:04:38,250 --> 00:04:43,250
‫pago y finalmente la enviamos al cliente.

85
00:04:45,550 --> 00:04:47,633
‫Está bien, entonces el primer paso es realmente fácil.

86
00:04:53,376 --> 00:04:57,043
‫Entonces vamos a esperar.

87
00:04:59,930 --> 00:05:01,053
‫Así que gira. findbyId

88
00:05:02,140 --> 00:05:06,120
‫que es req. params. tourId.

89
00:05:07,210 --> 00:05:10,173
‫Bien, ese

90
00:05:14,790 --> 00:05:18,112
‫fue el nombre que le dimos en el parámetro URL.

91
00:05:18,112 --> 00:05:19,810
‫Y, por supuesto, esta es

92
00:05:19,810 --> 00:05:24,250
‫ahora una función asíncrona con un catchAsync además de eso o alrededor de eso, en realidad.

93
00:05:25,120 --> 00:05:29,623
‫Genial, a continuación, creemos esa sesión aquí.

94
00:05:33,170 --> 00:05:36,360
‫Y para eso, necesitamos instalar este paquete

95
00:05:36,360 --> 00:05:38,410
‫NPM de unidad.

96
00:05:38,410 --> 00:05:40,323
‫Así que hagámoslo aquí.

97
00:05:41,920 --> 00:05:45,650
‫NPM instala Stripe.

98
00:05:45,650 --> 00:05:50,290
‫Y mientras tanto, iremos a nuestro tablero de Stripe

99
00:05:50,290 --> 00:05:54,000
‫y obtendremos nuestra clave secreta de aquí.

100
00:05:54,000 --> 00:05:56,003
‫Así que simplemente presione este

101
00:05:57,030 --> 00:05:59,280
‫botón aquí y luego continúe y cópielo.

102
00:05:59,280 --> 00:06:03,040
‫Y ves que aquí en las claves realmente

103
00:06:03,040 --> 00:06:04,630
‫dice prueba.

104
00:06:04,630 --> 00:06:06,380
‫Y nuevamente, estos aquí son

105
00:06:06,380 --> 00:06:09,920
‫solo para pruebas y luego, una vez que tenga su cuenta de

106
00:06:09,920 --> 00:06:12,530
‫Stripe activa, puede obtener sus claves API en vivo.

107
00:06:12,530 --> 00:06:14,993
‫Bien, ahora, como con cualquier otra

108
00:06:16,390 --> 00:06:19,230
‫clave, las pondremos aquí en nuestro archivo de configuración.

109
00:06:19,230 --> 00:06:22,743
‫Entonces, la clave secreta de Stripe es igual

110
00:06:25,490 --> 00:06:26,370
‫a esta.

111
00:06:29,490 --> 00:06:32,670
‫Y esto no es correcto aquí.

112
00:06:32,670 --> 00:06:34,120
‫Muy bien, copie este.

113
00:06:40,700 --> 00:06:43,163
‫Volver a nuestro controlador de reservas.

114
00:06:44,730 --> 00:06:46,610
‫Vamos a requerir ahora que

115
00:06:46,610 --> 00:06:49,400
‫este paquete de unidad se haya instalado correctamente aquí.

116
00:06:49,400 --> 00:06:52,620
‫Y solo con todos los otros paquetes anteriores,

117
00:06:52,620 --> 00:06:54,810
‫asegúrese de estar en la

118
00:06:54,810 --> 00:06:56,780
‫misma versión que yo.

119
00:06:56,780 --> 00:06:58,030
‫Y ves que estoy aquí en el flamante 7. 0. 0.

120
00:06:59,050 --> 00:07:02,137
‫Así que esto es realmente nuevo.

121
00:07:03,120 --> 00:07:04,730
‫Y en realidad eso es

122
00:07:04,730 --> 00:07:07,650
‫porque muchas cosas cambiaron con Stripe hace un par de días.

123
00:07:07,650 --> 00:07:10,370
‫Así que tuve que cambiar un par de estas implementaciones.

124
00:07:10,370 --> 00:07:13,113
‫De todos modos,

125
00:07:15,190 --> 00:07:20,190
‫const stripe equal require y luego stripe.

126
00:07:24,440 --> 00:07:26,000
‫Ahora, esto aquí expondrá una función básicamente.

127
00:07:26,000 --> 00:07:28,890
‫Y, por lo general, lo que hacemos de inmediato es

128
00:07:28,890 --> 00:07:30,940
‫pasar nuestra clave secreta directamente a eso.

129
00:07:30,940 --> 00:07:34,670
‫Y eso nos dará un objeto Stripe con

130
00:07:34,670 --> 00:07:37,020
‫el que podemos trabajar.

131
00:07:37,020 --> 00:07:38,123
‫Así que ahora en proceso. env. STRIPE_SECRET_KEY.

132
00:07:39,410 --> 00:07:43,057
‫Bien, y ahora usemos eso.

133
00:07:46,930 --> 00:07:51,093
‫Entonces decimos Stripe. verificar. sesión. crear.

134
00:07:52,700 --> 00:07:57,700
‫Y luego el objeto habitual de opciones.

135
00:08:02,450 --> 00:08:06,040
‫Muy bien, ahora hay un montón de

136
00:08:06,040 --> 00:08:08,680
‫opciones que podemos configurar aquí.

137
00:08:08,680 --> 00:08:10,060
‫Pero solo se requieren tres de ellos.

138
00:08:10,060 --> 00:08:12,290
‫Entonces, el primero son los tipos de métodos de pago.

139
00:08:12,290 --> 00:08:15,083
‫Entonces, tipos de métodos de pago.

140
00:08:16,010 --> 00:08:20,213
‫Esa es una matriz en la que podemos especificar varios

141
00:08:22,950 --> 00:08:26,740
‫tipos y la tarjeta es para tarjeta de crédito.

142
00:08:26,740 --> 00:08:28,920
‫Y en este momento, esas son todas las

143
00:08:28,920 --> 00:08:31,780
‫opciones de pago que podemos usar para el pago de Stripe.

144
00:08:31,780 --> 00:08:34,330
‫Pero leí que en el futuro agregarán mucho más.

145
00:08:34,330 --> 00:08:38,130
‫Para que pueda informarse con eso.

146
00:08:38,130 --> 00:08:41,550
‫Luego, debemos especificar la URL correcta.

147
00:08:41,550 --> 00:08:44,023
‫Y esa es básicamente la URL a la que

148
00:08:46,240 --> 00:08:49,350
‫se llamará tan pronto como se haya cargado correctamente una tarjeta de crédito.

149
00:08:49,350 --> 00:08:52,690
‫Tan pronto como la compra se haya realizado correctamente,

150
00:08:52,690 --> 00:08:55,780
‫el usuario será redirigido a esta URL.

151
00:08:55,780 --> 00:08:58,860
‫Y por ahora, simplemente especifiquemos eso como nuestra página de inicio.

152
00:08:58,860 --> 00:09:02,123
‫Está bien y lo haremos

153
00:09:03,060 --> 00:09:06,290
‫como antes con req. protocolo: // y

154
00:09:06,290 --> 00:09:10,963
‫luego solicitar. conseguir el anfitrión.

155
00:09:14,270 --> 00:09:18,663
‫Básicamente, solo nuestra URL de inicio.

156
00:09:20,670 --> 00:09:23,403
‫Entonces también necesitamos especificar la URL de cancelación.

157
00:09:24,330 --> 00:09:27,707
‫Así que así.

158
00:09:30,530 --> 00:09:31,773
‫Y este será similar.

159
00:09:33,010 --> 00:09:34,763
‫Básicamente, es la página a la

160
00:09:36,260 --> 00:09:38,800
‫que va el usuario si decide cancelar el pago actual.

161
00:09:38,800 --> 00:09:41,980
‫Y de hecho, hagamos que vayan a la

162
00:09:41,980 --> 00:09:44,610
‫página del recorrido donde estaban anteriormente.

163
00:09:44,610 --> 00:09:46,360
‫Y eso es básicamente tour / tour. babosa.

164
00:09:46,360 --> 00:09:50,493
‫A continuación, también podemos especificar el correo electrónico del cliente.

165
00:09:56,040 --> 00:09:59,870
‫Y eso es muy útil porque, por supuesto, ya tenemos

166
00:09:59,870 --> 00:10:02,410
‫acceso al correo electrónico del cliente.

167
00:10:02,410 --> 00:10:05,380
‫Y así, con esto, podemos ahorrarle al usuario un paso y

168
00:10:05,380 --> 00:10:08,090
‫hacer que la experiencia de pago sea mucho más fluida.

169
00:10:08,090 --> 00:10:11,080
‫Muy bien, recuerda que esta es una ruta protegida.

170
00:10:11,080 --> 00:10:15,230
‫Y así, como siempre, el usuario ya está en la solicitud.

171
00:10:15,230 --> 00:10:19,320
‫Y entonces podemos decir solicitud. usuario. Email.

172
00:10:19,320 --> 00:10:23,763
‫A continuación, también podemos

173
00:10:25,030 --> 00:10:28,860
‫especificar un campo personalizado que se llama ID de referencia del cliente.

174
00:10:28,860 --> 00:10:31,560
‫Y eso suena un poco extraño,

175
00:10:31,560 --> 00:10:34,610
‫pero en realidad será muy importante para nosotros.

176
00:10:34,610 --> 00:10:36,340
‫Entonces, este campo nos

177
00:10:36,340 --> 00:10:39,900
‫permitirá pasar algunos datos sobre la sesión que estamos creando actualmente.

178
00:10:39,900 --> 00:10:42,430
‫Y eso es importante porque más tarde, una vez

179
00:10:42,430 --> 00:10:44,400
‫que la compra se haya realizado

180
00:10:44,400 --> 00:10:46,530
‫correctamente, tendremos acceso al objeto de sesión nuevamente.

181
00:10:46,530 --> 00:10:50,250
‫Y para entonces, queremos crear una nueva reserva

182
00:10:50,250 --> 00:10:52,830
‫en nuestra base de datos.

183
00:10:52,830 --> 00:10:54,400
‫Así que recuerda el diagrama

184
00:10:54,400 --> 00:10:56,380
‫que te mostré en la última conferencia.

185
00:10:56,380 --> 00:10:57,610
‫Básicamente, de lo que estoy hablando

186
00:10:57,610 --> 00:10:59,240
‫aquí es del último paso en ese diagrama.

187
00:10:59,240 --> 00:11:01,890
‫Y recuerde también cómo eso

188
00:11:01,890 --> 00:11:04,670
‫solo funcionará con los sitios web implementados.

189
00:11:04,670 --> 00:11:06,130
‫Pero aún así, preparémonos para eso aquí.

190
00:11:06,130 --> 00:11:08,900
‫De acuerdo, para crear una nueva reserva en nuestra

191
00:11:08,900 --> 00:11:12,860
‫base de datos, necesitaremos la identificación del usuario, la identificación del tour y el precio.

192
00:11:12,860 --> 00:11:16,890
‫¿Recuérdalo?

193
00:11:16,890 --> 00:11:18,260
‫Y en esta sesión

194
00:11:18,260 --> 00:11:20,460
‫ya tenemos acceso al correo electrónico del

195
00:11:20,460 --> 00:11:22,315
‫usuario y desde allí podemos volver

196
00:11:22,315 --> 00:11:26,290
‫a crear la identificación del usuario porque el correo electrónico aquí es único.

197
00:11:26,290 --> 00:11:28,520
‫También especificaremos el precio del tour aquí en

198
00:11:28,520 --> 00:11:31,900
‫un segundo, por lo que todo lo que falta es el ID del tour.

199
00:11:31,900 --> 00:11:35,100
‫Y eso es lo que vamos a especificar aquí

200
00:11:35,100 --> 00:11:37,130
‫básicamente en este campo personalizado.

201
00:11:37,130 --> 00:11:39,263
‫Eso se llama ID de referencia del cliente.

202
00:11:41,320 --> 00:11:45,763
‫Y todo lo que acabo de explicar antes en realidad tendrá mucho

203
00:11:47,500 --> 00:11:49,750
‫más sentido una vez que

204
00:11:49,750 --> 00:11:52,210
‫implementemos ese último paso para crear una

205
00:11:52,210 --> 00:11:54,630
‫reserva en la base de datos, ¿verdad?

206
00:11:54,630 --> 00:11:58,240
‫De todos modos, esa identificación de viaje está a pedido. params. tourId.

207
00:11:58,240 --> 00:12:02,667
‫Muy bien, y ahora finalmente,

208
00:12:05,371 --> 00:12:08,080
‫vamos a especificar algunos detalles sobre el producto en sí.

209
00:12:08,080 --> 00:12:11,010
‫Así que nuestro recorrido en este caso.

210
00:12:11,010 --> 00:12:13,093
‫Y eso se llama

211
00:12:14,100 --> 00:12:17,720
‫elementos de línea que acepta una matriz de objetos.

212
00:12:17,720 --> 00:12:19,700
‫Básicamente, uno por artículo

213
00:12:19,700 --> 00:12:22,330
‫y, en nuestro caso, solo será uno.

214
00:12:22,330 --> 00:12:24,733
‫Entonces, debemos especificar el nombre

215
00:12:25,940 --> 00:12:28,640
‫del producto y eso está en gira. nombre y como siempre también agregamos

216
00:12:30,160 --> 00:12:34,810
‫el tour a ese nombre.

217
00:12:34,810 --> 00:12:39,423
‫Entonces también podemos especificar una descripción.

218
00:12:41,720 --> 00:12:43,933
‫Y todos estos nombres de campo aquí realmente provienen de Stripe.

219
00:12:45,840 --> 00:12:48,950
‫Entonces no podemos crear nuestros propios campos.

220
00:12:48,950 --> 00:12:51,200
‫Entonces, si intenta hacer eso, realmente obtendrá algún error.

221
00:12:51,200 --> 00:12:54,683
‫Muy bien, entonces en la descripción pondré el resumen del

222
00:12:55,530 --> 00:12:57,510
‫recorrido, así que esa bonita frase

223
00:12:57,510 --> 00:12:59,373
‫corta que describirá cada recorrido.

224
00:13:00,540 --> 00:13:05,540
‫Entonces también podemos especificar una matriz de imágenes.

225
00:13:06,400 --> 00:13:10,750
‫Ahora bien, estas imágenes de aquí deben ser imágenes en vivo.

226
00:13:10,750 --> 00:13:14,120
‫Básicamente, imágenes que están alojadas en Internet

227
00:13:14,120 --> 00:13:17,260
‫porque Stripe realmente cargará esta imagen

228
00:13:17,260 --> 00:13:20,090
‫en su propio servidor.

229
00:13:20,090 --> 00:13:21,680
‫Y esta es otra de las cosas que

230
00:13:21,680 --> 00:13:23,740
‫realmente solo podemos hacer una vez que se implementa el sitio web.

231
00:13:23,740 --> 00:13:27,470
‫Pero por ahora, como marcador de posición, básicamente usaré los de

232
00:13:27,470 --> 00:13:30,680
‫nuestro sitio web de ejemplo alojado en natours. dev.

233
00:13:30,680 --> 00:13:34,760
‫Así que vayamos a ese sitio web.

234
00:13:34,760 --> 00:13:36,623
‫Así que ese es este en natours. dev.

235
00:13:38,100 --> 00:13:41,050
‫Y la imagen que voy a elegir es la imagen de portada.

236
00:13:41,050 --> 00:13:44,500
‫Así que inspeccionemos esa imagen.

237
00:13:44,500 --> 00:13:46,283
‫Así que este aquí y copie la dirección del enlace aquí.

238
00:13:47,130 --> 00:13:51,103
‫Está bien.

239
00:13:52,396 --> 00:13:53,710
‫Así que esta es

240
00:13:53,710 --> 00:13:58,140
‫una matriz porque podemos especificar varias imágenes, pero en realidad solo queremos una de ellas.

241
00:13:58,140 --> 00:14:00,673
‫Y de hecho tenemos natours. dev / images / tours y luego

242
00:14:01,790 --> 00:14:05,950
‫el nombre de la imagen.

243
00:14:05,950 --> 00:14:07,940
‫Y este simplemente lo reemplazaré con tour. portada de la imagen.

244
00:14:07,940 --> 00:14:11,810
‫Y eso va a

245
00:14:11,810 --> 00:14:14,950
‫funcionar porque los nombres de las imágenes en natours. dev son exactamente los mismos que tenemos

246
00:14:14,950 --> 00:14:18,920
‫aquí en nuestro proyecto.

247
00:14:18,920 --> 00:14:20,053
‫Así que gira. imageCover.

248
00:14:21,560 --> 00:14:23,500
‫Entonces, esto es una

249
00:14:26,580 --> 00:14:29,980
‫cosa más que realmente necesitamos cambiar una vez que pongamos nuestro sitio web en producción.

250
00:14:29,980 --> 00:14:32,520
‫Y de hecho estoy manteniendo una

251
00:14:32,520 --> 00:14:35,630
‫lista de esas cosas para que no olvidemos nada.

252
00:14:35,630 --> 00:14:37,280
‫De todos modos, lo siguiente es la cantidad.

253
00:14:38,450 --> 00:14:40,760
‫Básicamente, el precio del producto

254
00:14:40,760 --> 00:14:42,940
‫que se está comprando.

255
00:14:42,940 --> 00:14:44,163
‫Así que eso es gira. precio y ahora tenemos

256
00:14:45,010 --> 00:14:47,990
‫que multiplicar eso por 100.

257
00:14:47,990 --> 00:14:50,660
‫Porque se espera que esta cantidad sea en centavos.

258
00:14:50,660 --> 00:14:53,673
‫Entonces, un dólar o un euro o realmente la

259
00:14:54,870 --> 00:14:57,270
‫mayoría de las monedas tienen 100 centavos.

260
00:14:57,270 --> 00:15:00,640
‫Entonces, un dólar equivale a 100 centavos.

261
00:15:00,640 --> 00:15:02,920
‫Entonces, para convertirlo a centavos, simplemente multiplíquelo por 100.

262
00:15:02,920 --> 00:15:06,663
‫Entonces también necesitamos especificar la moneda.

263
00:15:08,040 --> 00:15:11,790
‫Y eso es en este caso USD.

264
00:15:11,790 --> 00:15:14,110
‫Pero también podría ser

265
00:15:14,110 --> 00:15:18,850
‫como, para el euro es EUR y para otras monedas, probablemente

266
00:15:20,439 --> 00:15:23,560
‫debería echar un vistazo a la documentación.

267
00:15:23,560 --> 00:15:25,090
‫Entonces, por supuesto, no

268
00:15:25,090 --> 00:15:27,670
‫puedo cubrir todas las monedas que existen, ¿verdad?

269
00:15:27,670 --> 00:15:31,000
‫De todos modos, finalmente también especificamos la cantidad.

270
00:15:31,000 --> 00:15:35,760
‫Y eso es solo una gira en este caso.

271
00:15:35,760 --> 00:15:38,263
‫Entonces eso es realmente.

272
00:15:41,110 --> 00:15:43,370
‫Básicamente, esta parte aquí

273
00:15:43,370 --> 00:15:47,230
‫es la información sobre la sesión en sí.

274
00:15:47,230 --> 00:15:48,800
‫Y luego aquí está la información

275
00:15:48,800 --> 00:15:51,630
‫sobre el producto que el usuario está a punto de comprar.

276
00:15:51,630 --> 00:15:54,060
‫Muy bien, ahora guardemos la sesión.

277
00:15:54,060 --> 00:15:56,883
‫Así que const session y ahora debemos

278
00:15:57,810 --> 00:15:59,090
‫esperar esto.

279
00:16:00,270 --> 00:16:03,000
‫Entonces, esta creación aquí básicamente devuelve una

280
00:16:03,000 --> 00:16:05,850
‫premisa porque configurar todas estas opciones aquí

281
00:16:05,850 --> 00:16:08,110
‫básicamente hará una llamada

282
00:16:08,110 --> 00:16:11,060
‫API a Stripe y, por supuesto, esa

283
00:16:11,060 --> 00:16:14,341
‫es una función asincrónica que deberíamos esperar aquí.

284
00:16:14,341 --> 00:16:16,470
‫Está bien, pero de todos modos

285
00:16:16,470 --> 00:16:19,790
‫esta es ahora nuestra sesión y, por lo tanto, el último

286
00:16:19,790 --> 00:16:22,740
‫paso es, por supuesto, enviarla de vuelta al cliente.

287
00:16:22,740 --> 00:16:24,020
‫Entonces, como siempre,

288
00:16:24,020 --> 00:16:25,493
‫el estado es el éxito.

289
00:16:29,480 --> 00:16:31,743
‫Y luego simplemente enviemos la sesión así.

290
00:16:33,460 --> 00:16:36,463
‫Muy bien, debería ser así.

291
00:16:38,896 --> 00:16:42,510
‫Nuestro enrutador ya está configurado, por lo

292
00:16:42,510 --> 00:16:44,980
‫que creo que

293
00:16:44,980 --> 00:16:48,260
‫ahora podríamos probar esto en Postman.

294
00:16:48,260 --> 00:16:49,950
‫Muy bien, ahora más

295
00:16:49,950 --> 00:16:53,470
‫tarde, por supuesto, no permitiremos que nadie haga esto usando cartero

296
00:16:53,470 --> 00:16:55,370
‫porque eso no tiene mucho sentido.

297
00:16:55,370 --> 00:16:57,650
‫Pero ahora, dado que solo estamos

298
00:16:57,650 --> 00:16:59,990
‫probando esto, en realidad tiene mucho sentido.

299
00:16:59,990 --> 00:17:02,060
‫Muy bien, vayamos

300
00:17:02,060 --> 00:17:05,660
‫al cartero y creemos una nueva solicitud.

301
00:17:05,660 --> 00:17:08,483
‫Así que eso será

302
00:17:11,150 --> 00:17:15,770
‫en las reservas / uh, no estoy muy seguro.

303
00:17:17,768 --> 00:17:19,313
‫Sí, entonces la sesión de pago y luego / tourId.

304
00:17:20,261 --> 00:17:24,473
‫Muy bien, consigamos nuestros recorridos aquí.

305
00:17:26,330 --> 00:17:28,823
‫Para obtener la identificación de allí básicamente.

306
00:17:31,030 --> 00:17:33,323
‫Así que hagamos el Sea Explorer.

307
00:17:34,560 --> 00:17:36,263
‫Está bien, y eso debería ser suficiente.

308
00:17:41,700 --> 00:17:45,950
‫Oh, espera, por supuesto que no estamos conectados.

309
00:17:45,950 --> 00:17:47,963
‫Así que inicie sesión aquí.

310
00:17:50,022 --> 00:17:51,363
‫Ahora estamos en administración,

311
00:17:54,010 --> 00:17:55,460
‫pero usemos a alguien más aquí.

312
00:17:55,460 --> 00:17:57,370
‫Y creo que usamos Leo

313
00:17:57,370 --> 00:17:59,860
‫antes, así que ahora usemos ese usuario.

314
00:17:59,860 --> 00:18:01,813
‫Ahora tenemos una contraseña incorrecta.

315
00:18:04,250 --> 00:18:07,053
‫Muy bien, veamos qué más tenemos.

316
00:18:08,761 --> 00:18:11,320
‫Entonces, ¿qué otros usuarios podríamos usar?

317
00:18:11,320 --> 00:18:14,470
‫Y de hecho usemos a Monica aquí.

318
00:18:14,470 --> 00:18:16,683
‫¿Por qué no?

319
00:18:19,990 --> 00:18:21,530
‫Así que, con suerte, su contraseña es correcta.

320
00:18:21,530 --> 00:18:25,753
‫Bueno, intentemos reemplazar esto aquí

321
00:18:27,500 --> 00:18:30,410
‫con test1234.

322
00:18:32,170 --> 00:18:33,883
‫Bueno, tal vez cambiamos las

323
00:18:35,290 --> 00:18:38,040
‫contraseñas de todos estos usuarios en algunas otras conferencias antes.

324
00:18:38,040 --> 00:18:41,493
‫Entonces usemos a John aquí.

325
00:18:43,740 --> 00:18:46,320
‫Entonces sé que nunca usamos a John,

326
00:18:46,320 --> 00:18:48,740
‫así que ahora tiene que funcionar.

327
00:18:48,740 --> 00:18:51,523
‫Oh, de hecho veo el error que hice antes.

328
00:18:55,250 --> 00:18:59,000
‫Así que aquí no se trata de natours, debe ser un ejemplo. com.

329
00:18:59,000 --> 00:19:02,583
‫Intentémoslo de nuevo con Monica.

330
00:19:06,410 --> 00:19:08,460
‫O simplemente con John.

331
00:19:11,990 --> 00:19:13,813
‫Esto es más difícil de lo que esperaba.

332
00:19:14,850 --> 00:19:18,000
‫Pero ahora finalmente estamos conectados.

333
00:19:18,000 --> 00:19:19,963
‫Muy bien, y con

334
00:19:21,130 --> 00:19:24,500
‫eso, intentemos obtener nuestra sesión de pago.

335
00:19:24,500 --> 00:19:26,743
‫Nos falta la autorización de aquí.

336
00:19:29,180 --> 00:19:31,463
‫Una vez más, y ahora tenemos un error real aquí.

337
00:19:33,180 --> 00:19:37,270
‫Entonces, algo que realmente proviene del código

338
00:19:37,270 --> 00:19:40,370
‫que acabamos de escribir.

339
00:19:40,370 --> 00:19:41,713
‫Está bien.

340
00:19:43,220 --> 00:19:44,550
‫Así que veamos eso.

341
00:19:44,550 --> 00:19:46,223
‫Y el problema es que aquí son sesiones.

342
00:19:47,740 --> 00:19:51,200
‫Así que raya. verificar. sesiones.

343
00:19:51,200 --> 00:19:54,963
‫Una vez más.

344
00:19:57,400 --> 00:19:58,383
‫Esta vez está tardando mucho más, lo que es una buena señal.

345
00:19:59,680 --> 00:20:03,850
‫Y tenemos otro error.

346
00:20:03,850 --> 00:20:05,740
‫Entonces, la línea 15 no puede leer el slug del nodo.

347
00:20:05,740 --> 00:20:09,573
‫Muy bien, eso sí que es extraño porque debería

348
00:20:12,200 --> 00:20:15,510
‫haber una babosa en esta gira.

349
00:20:15,510 --> 00:20:18,463
‫Así que sí, ves que aquí

350
00:20:19,980 --> 00:20:21,290
‫está realmente.

351
00:20:22,930 --> 00:20:25,660
‫Entonces, tal vez algo

352
00:20:25,660 --> 00:20:29,660
‫salió mal al leer esta gira.

353
00:20:29,660 --> 00:20:30,623
‫Lo que realmente no puedo entender por qué sería eso.

354
00:20:31,580 --> 00:20:35,083
‫Pero intentemos registrar el recorrido en la consola.

355
00:20:35,970 --> 00:20:39,273
‫De acuerdo, y de hecho obtenemos nulos.

356
00:20:46,970 --> 00:20:50,000
‫Lo que probablemente significa que

357
00:20:50,000 --> 00:20:54,480
‫hay un ID de recorrido no definido correctamente.

358
00:20:54,480 --> 00:20:55,763
‫Oh, aquí está el problema.

359
00:20:56,750 --> 00:20:58,790
‫Entonces lo tengo, ID todo en

360
00:20:58,790 --> 00:21:02,330
‫mayúsculas, pero luego aquí en el controlador tengo la D en minúsculas.

361
00:21:02,330 --> 00:21:06,450
‫Así que así.

362
00:21:06,450 --> 00:21:07,840
‫Y ese es el

363
00:21:07,840 --> 00:21:10,790
‫pequeño tipo de errores que ocurren todo el tiempo, obviamente.

364
00:21:10,790 --> 00:21:12,183
‫Así que veamos cuál es el siguiente.

365
00:21:13,210 --> 00:21:15,040
‫Ah, y de hecho esta vez lo hicimos bien.

366
00:21:15,040 --> 00:21:18,280
‫Entonces ves que es la sesión que acabamos de crear.

367
00:21:18,280 --> 00:21:22,050
‫Y edita algunas otras cosas aquí, pero eso realmente no

368
00:21:22,050 --> 00:21:24,290
‫nos importa en este momento.

369
00:21:24,290 --> 00:21:27,430
‫Sin embargo, lo que es realmente interesante de ver

370
00:21:27,430 --> 00:21:29,340
‫es que ahora ya podemos

371
00:21:29,340 --> 00:21:32,330
‫ver este pago, o al menos esta solicitud

372
00:21:32,330 --> 00:21:35,330
‫de pago, digamos en nuestros paneles de control.

373
00:21:35,330 --> 00:21:37,843
‫Entonces, si vamos allí

374
00:21:39,490 --> 00:21:44,490
‫y vamos a los pagos y luego a todos, verán

375
00:21:44,540 --> 00:21:49,010
‫que este último en realidad sucedió ahora mismo.

376
00:21:49,010 --> 00:21:51,320
‫Entonces, si hacemos clic en eso, verá algunos datos al respecto.

377
00:21:51,320 --> 00:21:56,320
‫Entonces ves, por ejemplo, que en realidad se trata

378
00:21:56,630 --> 00:21:59,130
‫del Sea Explorer Tour.

379
00:21:59,130 --> 00:22:00,960
‫También tienes el precio, también tienes la imagen.

380
00:22:00,960 --> 00:22:03,983
‫Probablemente también algunos datos sobre el usuario.

381
00:22:04,920 --> 00:22:07,800
‫Y en realidad no, en realidad no.

382
00:22:07,800 --> 00:22:10,530
‫Pero lo que importa aquí es que dice incompleto.

383
00:22:10,530 --> 00:22:14,400
‫Y eso es porque solo creamos la sesión

384
00:22:14,400 --> 00:22:17,160
‫de pago en el servidor.

385
00:22:17,160 --> 00:22:18,310
‫Y entonces nos

386
00:22:18,310 --> 00:22:20,440
‫estamos perdiendo el segundo paso donde realmente cargamos

387
00:22:20,440 --> 00:22:22,750
‫la tarjeta de crédito en el lado del cliente.

388
00:22:22,750 --> 00:22:24,450
‫Entonces, dado que nos estamos perdiendo

389
00:22:24,450 --> 00:22:26,210
‫eso, hagámoslo bien en el siguiente video.

