﻿1
00:00:01,060 --> 00:00:03,650
‫Instrutor: Então, neste vídeo, vamos integrar o

2
00:00:03,650 --> 00:00:07,240
‫Stripe em nosso back-end, criando aquele endpoint de API que

3
00:00:07,240 --> 00:00:10,983
‫criará e enviará de volta uma sessão de verificação do Stripe.

4
00:00:12,870 --> 00:00:15,717
‫E então, neste ponto, vamos começar a criar

5
00:00:15,717 --> 00:00:17,110
‫nosso próximo recurso.

6
00:00:17,110 --> 00:00:18,860
‫E assim são as reservas.

7
00:00:18,860 --> 00:00:21,413
‫E vou começar aqui com as rotas de reserva.

8
00:00:24,995 --> 00:00:25,828
‫Então,

9
00:00:27,200 --> 00:00:29,100
‫reservas de rotas. js.

10
00:00:29,100 --> 00:00:31,660
‫E já fizemos isso muitas vezes agora.

11
00:00:31,660 --> 00:00:33,150
‫Vou copiar todo esse

12
00:00:33,150 --> 00:00:34,480
‫código e colocá-lo

13
00:00:35,890 --> 00:00:37,843
‫aqui nas rotas de reserva.

14
00:00:39,410 --> 00:00:42,073
‫E então simplesmente remova tudo isso.

15
00:00:44,230 --> 00:00:45,923
‫E também este.

16
00:00:47,310 --> 00:00:50,060
‫Também não precisamos de parâmetros de mesclagem e

17
00:00:51,000 --> 00:00:54,530
‫teremos um controlador de reserva em vez de um controlador

18
00:00:54,530 --> 00:00:55,593
‫de revisão.

19
00:00:57,850 --> 00:01:02,203
‫Então, vamos criar um controlador de reserva.

20
00:01:03,844 --> 00:01:04,677
‫Assim. js que

21
00:01:09,317 --> 00:01:10,170
‫parece correto e vamos

22
00:01:11,520 --> 00:01:12,570
‫também integrar isso no aplicativo. js.

23
00:01:13,460 --> 00:01:17,503
‫E então vamos colocar isso bem aqui

24
00:01:18,970 --> 00:01:20,970
‫após o roteador de revisão.

25
00:01:20,970 --> 00:01:22,423
‫Portanto, aqui

26
00:01:25,430 --> 00:01:29,940
‫estão apenas as reservas e, claro, aqui embaixo, integrem

27
00:01:32,100 --> 00:01:34,370
‫isso à nossa API.

28
00:01:34,370 --> 00:01:35,513
‫Então, as reservas

29
00:01:40,190 --> 00:01:42,220
‫e aqui o roteador de reservas.

30
00:01:43,360 --> 00:01:44,913
‫E eu acho que isso deveria ser apenas reserva.

31
00:01:46,970 --> 00:01:49,223
‫Então, vamos consertar isso aqui também.

32
00:01:50,170 --> 00:01:52,703
‫E, de fato, o chamamos de roteador de reservas.

33
00:01:54,180 --> 00:01:57,010
‫E o mesmo aqui, não se trata de reservas,

34
00:01:57,010 --> 00:01:58,880
‫mas de rotas de reserva.

35
00:01:58,880 --> 00:02:00,700
‫Então, salve.

36
00:02:00,700 --> 00:02:01,863
‫Feche este e

37
00:02:04,100 --> 00:02:05,990
‫este e este aqui também.

38
00:02:05,990 --> 00:02:09,090
‫E agora vamos realmente prosseguir e criar

39
00:02:09,090 --> 00:02:11,670
‫nossa primeira rota aqui.

40
00:02:11,670 --> 00:02:13,083
‫Então vamos roteador. get e a rota

41
00:02:14,980 --> 00:02:19,980
‫que ele criará aqui mais uma vez não

42
00:02:20,930 --> 00:02:24,160
‫seguirá o princípio do resto, porque este não será realmente sobre

43
00:02:24,160 --> 00:02:26,630
‫como criar, obter ou atualizar qualquer reserva.

44
00:02:26,630 --> 00:02:30,080
‫Em vez disso, essa rota será apenas para o

45
00:02:30,080 --> 00:02:33,060
‫cliente obter uma sessão de checkout.

46
00:02:33,060 --> 00:02:35,390
‫E então vamos chamar essa

47
00:02:35,390 --> 00:02:37,140
‫sessão de checkout.

48
00:02:38,810 --> 00:02:41,733
‫Em seguida, precisamos proteger essa rota

49
00:02:43,060 --> 00:02:45,600
‫para que apenas usuários autenticados

50
00:02:45,600 --> 00:02:48,820
‫possam realmente obter uma sessão de checkout.

51
00:02:48,820 --> 00:02:50,380
‫Então isso faz sentido, certo?

52
00:02:50,380 --> 00:02:51,863
‫Em seguida, adicione o controlador de reserva.

53
00:02:52,840 --> 00:02:55,603
‫Vamos criar um manipulador

54
00:02:56,460 --> 00:02:59,253
‫de rota chamado get checkout session.

55
00:03:02,477 --> 00:03:06,558
‫Tudo bem.

56
00:03:06,558 --> 00:03:07,391
‫Então,

57
00:03:08,512 --> 00:03:12,422
‫vamos copiar este e criá-lo aqui nas exportações. getCheckoutSession, em seguida, a solicitação responde em

58
00:03:12,422 --> 00:03:14,839
‫seguida.

59
00:03:16,600 --> 00:03:19,513
‫E agora vamos começar a trabalhar.

60
00:03:21,910 --> 00:03:24,740
‫Agora, na verdade, há mais uma coisa que precisamos fazer aqui

61
00:03:24,740 --> 00:03:27,230
‫nas rotas que é especificar um parâmetro de URL.

62
00:03:27,230 --> 00:03:31,550
‫E esse será o ID do tour.

63
00:03:31,550 --> 00:03:34,083
‫Ok, então basicamente queremos que o cliente envie

64
00:03:35,970 --> 00:03:39,350
‫junto com a ID do tour que está começando atualmente reservado.

65
00:03:39,350 --> 00:03:42,920
‫E isso é para que possamos preencher a sessão de checkout com todos

66
00:03:42,920 --> 00:03:46,010
‫os dados que forem necessários, como o nome do tour e

67
00:03:46,010 --> 00:03:48,230
‫o preço do tour e tudo mais.

68
00:03:48,230 --> 00:03:52,220
‫Tudo bem, agora temos acesso ao ID do passeio nesta

69
00:03:52,220 --> 00:03:55,780
‫função de manipulador e a primeira coisa que realmente

70
00:03:55,780 --> 00:03:57,470
‫faremos é encontrar

71
00:03:57,470 --> 00:04:00,030
‫esse passeio em nosso banco de dados.

72
00:04:00,030 --> 00:04:02,610
‫Tudo bem, então para isso precisamos, é claro, do modelo de turismo.

73
00:04:02,610 --> 00:04:06,260
‫Então, vamos ao controlador de turnê e

74
00:04:06,260 --> 00:04:09,210
‫começar a partir daí.

75
00:04:09,210 --> 00:04:11,190
‫Também vamos precisar desse

76
00:04:11,190 --> 00:04:14,120
‫catchAsync e, na verdade, de tudo isso.

77
00:04:14,120 --> 00:04:15,793
‫Portanto, estou copiando tudo e, mesmo

78
00:04:16,870 --> 00:04:18,510
‫que não precise imediatamente, provavelmente

79
00:04:18,510 --> 00:04:20,730
‫irei precisar um pouco mais tarde de qualquer maneira.

80
00:04:20,730 --> 00:04:23,363
‫Tudo bem.

81
00:04:24,629 --> 00:04:25,462
‫Então, vamos fazer o layout de nossas etapas aqui novamente.

82
00:04:27,840 --> 00:04:30,600
‫Então pegue o tour atualmente reservado.

83
00:04:30,600 --> 00:04:35,600
‫Em seguida, como uma segunda etapa, criamos a sessão

84
00:04:38,250 --> 00:04:43,250
‫de checkout e, finalmente, a enviamos ao cliente.

85
00:04:45,550 --> 00:04:47,633
‫Tudo bem, então a primeira etapa é realmente fácil.

86
00:04:53,376 --> 00:04:57,043
‫Então, vamos esperar.

87
00:04:59,930 --> 00:05:01,053
‫Então faça um tour. findbyId

88
00:05:02,140 --> 00:05:06,120
‫que é req. params. tourId.

89
00:05:07,210 --> 00:05:10,173
‫Certo, então

90
00:05:14,790 --> 00:05:18,112
‫esse foi o nome que demos no parâmetro URL.

91
00:05:18,112 --> 00:05:19,810
‫E, claro, agora esta é

92
00:05:19,810 --> 00:05:24,250
‫uma função assíncrona com um catchAsync além disso ou próximo a isso, na verdade.

93
00:05:25,120 --> 00:05:29,623
‫Ótimo, a seguir, vamos criar essa sessão aqui.

94
00:05:33,170 --> 00:05:36,360
‫E para isso realmente precisamos instalar este

95
00:05:36,360 --> 00:05:38,410
‫pacote NPM da unidade.

96
00:05:38,410 --> 00:05:40,323
‫Então vamos fazer isso aqui.

97
00:05:41,920 --> 00:05:45,650
‫NPM instala o Stripe.

98
00:05:45,650 --> 00:05:50,290
‫Enquanto isso, vamos ao painel do Stripe e

99
00:05:50,290 --> 00:05:54,000
‫pegar nossa chave secreta daqui.

100
00:05:54,000 --> 00:05:56,003
‫Basta clicar neste botão

101
00:05:57,030 --> 00:05:59,280
‫aqui e, em seguida, copiá-lo.

102
00:05:59,280 --> 00:06:03,040
‫E você vê que aqui nas chaves realmente

103
00:06:03,040 --> 00:06:04,630
‫diz teste.

104
00:06:04,630 --> 00:06:06,380
‫E então, novamente, estes aqui

105
00:06:06,380 --> 00:06:09,920
‫são apenas para teste e depois que você tiver sua conta do Stripe

106
00:06:09,920 --> 00:06:12,530
‫ativa, você pode obter suas chaves de API ativas.

107
00:06:12,530 --> 00:06:14,993
‫Ok, agora como com qualquer outra

108
00:06:16,390 --> 00:06:19,230
‫chave, iremos colocá-las aqui em nosso arquivo de configuração.

109
00:06:19,230 --> 00:06:22,743
‫Então, a chave secreta do Stripe é igual

110
00:06:25,490 --> 00:06:26,370
‫a esta.

111
00:06:29,490 --> 00:06:32,670
‫E isso não está correto aqui.

112
00:06:32,670 --> 00:06:34,120
‫Tudo bem, então copie este.

113
00:06:40,700 --> 00:06:43,163
‫De volta ao nosso controlador de reservas.

114
00:06:44,730 --> 00:06:46,610
‫Vamos agora exigir que este

115
00:06:46,610 --> 00:06:49,400
‫pacote de unidade tenha sido instalado com sucesso aqui.

116
00:06:49,400 --> 00:06:52,620
‫E apenas com todos os outros pacotes anteriores, certifique-se

117
00:06:52,620 --> 00:06:54,810
‫de que você está realmente na

118
00:06:54,810 --> 00:06:56,780
‫mesma versão que eu.

119
00:06:56,780 --> 00:06:58,030
‫E você vê que estou aqui no novíssimo 7. 0 0

120
00:06:59,050 --> 00:07:02,137
‫Então, isso é realmente novo.

121
00:07:03,120 --> 00:07:04,730
‫E na verdade isso é

122
00:07:04,730 --> 00:07:07,650
‫porque muitas coisas mudaram com o Stripe alguns dias atrás.

123
00:07:07,650 --> 00:07:10,370
‫Então eu tive que mudar algumas dessas implementações.

124
00:07:10,370 --> 00:07:13,113
‫De qualquer forma,

125
00:07:15,190 --> 00:07:20,190
‫const stripe igual a require e então stripe.

126
00:07:24,440 --> 00:07:26,000
‫Agora, isso aqui irá então expor uma função basicamente.

127
00:07:26,000 --> 00:07:28,890
‫E geralmente o que fazemos imediatamente é passar nossa

128
00:07:28,890 --> 00:07:30,940
‫chave secreta direto para isso.

129
00:07:30,940 --> 00:07:34,670
‫E isso nos dará um objeto Stripe com

130
00:07:34,670 --> 00:07:37,020
‫o qual podemos trabalhar.

131
00:07:37,020 --> 00:07:38,123
‫Então isso agora está em processo. env. STRIPE_SECRET_KEY.

132
00:07:39,410 --> 00:07:43,057
‫Ok, e agora vamos usar isso.

133
00:07:46,930 --> 00:07:51,093
‫Então dizemos Stripe. Confira. sessão. crio.

134
00:07:52,700 --> 00:07:57,700
‫E então o objeto usual de opções.

135
00:08:02,450 --> 00:08:06,040
‫Tudo bem, agora há uma tonelada de

136
00:08:06,040 --> 00:08:08,680
‫opções que podemos definir aqui.

137
00:08:08,680 --> 00:08:10,060
‫Mas apenas três deles são necessários.

138
00:08:10,060 --> 00:08:12,290
‫Portanto, o primeiro são os tipos de métodos de pagamento.

139
00:08:12,290 --> 00:08:15,083
‫Tipos de métodos de pagamento.

140
00:08:16,010 --> 00:08:20,213
‫Essa é uma matriz onde podemos especificar vários tipos

141
00:08:22,950 --> 00:08:26,740
‫e cartão é para cartão de crédito.

142
00:08:26,740 --> 00:08:28,920
‫E agora essas são todas as opções

143
00:08:28,920 --> 00:08:31,780
‫de pagamento que podemos usar para finalizar a compra do Stripe.

144
00:08:31,780 --> 00:08:34,330
‫Mas eu li que no futuro eles irão adicionar muito mais.

145
00:08:34,330 --> 00:08:38,130
‫Então você pode se informar sobre isso.

146
00:08:38,130 --> 00:08:41,550
‫Em seguida, precisamos especificar a URL de sucesso.

147
00:08:41,550 --> 00:08:44,023
‫E esse é basicamente o URL que será

148
00:08:46,240 --> 00:08:49,350
‫chamado assim que um cartão de crédito for cobrado com sucesso.

149
00:08:49,350 --> 00:08:52,690
‫Assim, assim que a compra for bem-sucedida, o

150
00:08:52,690 --> 00:08:55,780
‫usuário será redirecionado para este URL.

151
00:08:55,780 --> 00:08:58,860
‫E, por enquanto, vamos simplesmente especificar isso como nossa página inicial.

152
00:08:58,860 --> 00:09:02,123
‫Tudo bem e vamos fazer isso

153
00:09:03,060 --> 00:09:06,290
‫como antes com req. protocolo: // e, em

154
00:09:06,290 --> 00:09:10,963
‫seguida, solicitar. obter o host.

155
00:09:14,270 --> 00:09:18,663
‫Então, basicamente, apenas o nosso URL inicial.

156
00:09:20,670 --> 00:09:23,403
‫Em seguida, também precisamos especificar o URL de cancelamento.

157
00:09:24,330 --> 00:09:27,707
‫Então, assim.

158
00:09:30,530 --> 00:09:31,773
‫E este vai ser semelhante.

159
00:09:33,010 --> 00:09:34,763
‫Basicamente, é a página para onde

160
00:09:36,260 --> 00:09:38,800
‫o usuário vai se decidir cancelar o pagamento atual.

161
00:09:38,800 --> 00:09:41,980
‫E, na verdade, vamos fazê-los ir para a

162
00:09:41,980 --> 00:09:44,610
‫página do tour onde estavam antes.

163
00:09:44,610 --> 00:09:46,360
‫E isso é basicamente uma turnê / turnê. lesma

164
00:09:46,360 --> 00:09:50,493
‫Em seguida, também podemos especificar o e-mail do cliente.

165
00:09:56,040 --> 00:09:59,870
‫E isso é muito útil porque é claro que já

166
00:09:59,870 --> 00:10:02,410
‫temos acesso ao e-mail do cliente.

167
00:10:02,410 --> 00:10:05,380
‫E assim, podemos economizar uma etapa para o usuário e

168
00:10:05,380 --> 00:10:08,090
‫tornar a experiência de checkout muito mais suave.

169
00:10:08,090 --> 00:10:11,080
‫Tudo bem, então lembre-se de que esta é uma rota protegida.

170
00:10:11,080 --> 00:10:15,230
‫E, como sempre, o usuário já está a seu pedido.

171
00:10:15,230 --> 00:10:19,320
‫E assim podemos dizer pedido. do utilizador. o email.

172
00:10:19,320 --> 00:10:23,763
‫Em seguida, também podemos

173
00:10:25,030 --> 00:10:28,860
‫especificar um campo personalizado que é chamado de ID de referência do cliente.

174
00:10:28,860 --> 00:10:31,560
‫E isso soa um pouco estranho,

175
00:10:31,560 --> 00:10:34,610
‫mas na verdade será muito importante para nós.

176
00:10:34,610 --> 00:10:36,340
‫Portanto, este campo nos permitirá

177
00:10:36,340 --> 00:10:39,900
‫passar alguns dados sobre a sessão que estamos criando no momento.

178
00:10:39,900 --> 00:10:42,430
‫E isso é importante porque, mais tarde, quando

179
00:10:42,430 --> 00:10:44,400
‫a compra for bem-sucedida, teremos

180
00:10:44,400 --> 00:10:46,530
‫acesso ao objeto de sessão novamente.

181
00:10:46,530 --> 00:10:50,250
‫E então, queremos criar uma nova reserva em

182
00:10:50,250 --> 00:10:52,830
‫nosso banco de dados.

183
00:10:52,830 --> 00:10:54,400
‫Portanto, lembre-se do diagrama

184
00:10:54,400 --> 00:10:56,380
‫que mostrei a você na última aula.

185
00:10:56,380 --> 00:10:57,610
‫Basicamente, estou falando

186
00:10:57,610 --> 00:10:59,240
‫aqui da última etapa desse diagrama.

187
00:10:59,240 --> 00:11:01,890
‫E lembre-se também de que

188
00:11:01,890 --> 00:11:04,670
‫isso só funcionará com sites implantados.

189
00:11:04,670 --> 00:11:06,130
‫Mas ainda assim, vamos nos preparar para isso aqui.

190
00:11:06,130 --> 00:11:08,900
‫Ok, então, para criar uma nova reserva em nosso

191
00:11:08,900 --> 00:11:12,860
‫banco de dados, precisaremos do ID do usuário, do tour e do preço.

192
00:11:12,860 --> 00:11:16,890
‫Lembre-se disso?

193
00:11:16,890 --> 00:11:18,260
‫E nesta sessão

194
00:11:18,260 --> 00:11:20,460
‫já temos acesso ao e-mail do usuário

195
00:11:20,460 --> 00:11:22,315
‫e a partir daí podemos

196
00:11:22,315 --> 00:11:26,290
‫recriar o ID do usuário porque o e-mail aqui é único.

197
00:11:26,290 --> 00:11:28,520
‫Também especificaremos o preço do passeio aqui

198
00:11:28,520 --> 00:11:31,900
‫em um segundo, então tudo o que falta é o ID do passeio.

199
00:11:31,900 --> 00:11:35,100
‫E é isso que vamos especificar aqui

200
00:11:35,100 --> 00:11:37,130
‫neste campo personalizado, basicamente.

201
00:11:37,130 --> 00:11:39,263
‫Isso é chamado de ID de referência do cliente.

202
00:11:41,320 --> 00:11:45,763
‫E tudo o que acabei de explicar antes, na verdade, fará muito

203
00:11:47,500 --> 00:11:49,750
‫mais sentido quando implementarmos a

204
00:11:49,750 --> 00:11:52,210
‫última etapa de criação de uma

205
00:11:52,210 --> 00:11:54,630
‫reserva no banco de dados, certo?

206
00:11:54,630 --> 00:11:58,240
‫De qualquer forma, esse tour ID está disponível. params. tourId.

207
00:11:58,240 --> 00:12:02,667
‫Tudo bem, e agora

208
00:12:05,371 --> 00:12:08,080
‫finalmente, vamos especificar alguns detalhes sobre o produto em si.

209
00:12:08,080 --> 00:12:11,010
‫Portanto, nosso tour neste caso.

210
00:12:11,010 --> 00:12:13,093
‫E isso é chamado de

211
00:12:14,100 --> 00:12:17,720
‫itens de linha, que aceitam uma série de objetos.

212
00:12:17,720 --> 00:12:19,700
‫Basicamente, um por item

213
00:12:19,700 --> 00:12:22,330
‫e, em nosso caso, será apenas um.

214
00:12:22,330 --> 00:12:24,733
‫Devemos especificar o nome do

215
00:12:25,940 --> 00:12:28,640
‫produto e ele está em turnê. nome e, como sempre, também adicionamos

216
00:12:30,160 --> 00:12:34,810
‫o passeio a esse nome.

217
00:12:34,810 --> 00:12:39,423
‫Então, também podemos especificar uma descrição.

218
00:12:41,720 --> 00:12:43,933
‫E todos esses nomes de campo aqui, eles realmente vêm do Stripe.

219
00:12:45,840 --> 00:12:48,950
‫Portanto, não podemos construir nossos próprios campos.

220
00:12:48,950 --> 00:12:51,200
‫Portanto, se você tentar fazer isso, realmente obterá algum erro.

221
00:12:51,200 --> 00:12:54,683
‫Tudo bem, então na descrição irei colocar o resumo do

222
00:12:55,530 --> 00:12:57,510
‫passeio, aquela frase curta e legal

223
00:12:57,510 --> 00:12:59,373
‫que irá descrever cada passeio.

224
00:13:00,540 --> 00:13:05,540
‫Então, também podemos especificar uma matriz de imagens.

225
00:13:06,400 --> 00:13:10,750
‫Agora, essas imagens aqui precisam ser imagens ao vivo.

226
00:13:10,750 --> 00:13:14,120
‫Basicamente, imagens que são hospedadas na Internet porque

227
00:13:14,120 --> 00:13:17,260
‫o Stripe irá, na verdade, fazer o upload

228
00:13:17,260 --> 00:13:20,090
‫dessa imagem para seu próprio servidor.

229
00:13:20,090 --> 00:13:21,680
‫E esta é outra das coisas que

230
00:13:21,680 --> 00:13:23,740
‫só podemos realmente fazer depois que o site for implantado.

231
00:13:23,740 --> 00:13:27,470
‫Mas, por enquanto, como um espaço reservado, vou basicamente usar os

232
00:13:27,470 --> 00:13:30,680
‫do nosso site de exemplo hospedado no natours. dev.

233
00:13:30,680 --> 00:13:34,760
‫Então, vamos para esse site.

234
00:13:34,760 --> 00:13:36,623
‫Então é esse aqui na hora. dev.

235
00:13:38,100 --> 00:13:41,050
‫E a imagem que vou escolher é a imagem da capa.

236
00:13:41,050 --> 00:13:44,500
‫Então, vamos inspecionar essa imagem.

237
00:13:44,500 --> 00:13:46,283
‫Então, este aqui e copie o endereço do link aqui.

238
00:13:47,130 --> 00:13:51,103
‫Tudo bem.

239
00:13:52,396 --> 00:13:53,710
‫Portanto, esta é

240
00:13:53,710 --> 00:13:58,140
‫uma matriz porque podemos especificar várias imagens, mas na verdade queremos apenas uma delas.

241
00:13:58,140 --> 00:14:00,673
‫E, de fato, temos natours. dev / images / tours e

242
00:14:01,790 --> 00:14:05,950
‫o nome da imagem.

243
00:14:05,950 --> 00:14:07,940
‫E este eu simplesmente substituirei por tour. capa da imagem.

244
00:14:07,940 --> 00:14:11,810
‫E isso vai funcionar

245
00:14:11,810 --> 00:14:14,950
‫por causa dos nomes das imagens no natours. dev são exatamente os mesmos que temos

246
00:14:14,950 --> 00:14:18,920
‫aqui em nosso projeto.

247
00:14:18,920 --> 00:14:20,053
‫Então faça um tour. imageCover.

248
00:14:21,560 --> 00:14:23,500
‫Portanto, esta é

249
00:14:26,580 --> 00:14:29,980
‫mais uma coisa que realmente precisamos mudar assim que colocarmos nosso site em produção.

250
00:14:29,980 --> 00:14:32,520
‫E estou mantendo uma lista

251
00:14:32,520 --> 00:14:35,630
‫dessas coisas para que não esqueçamos de nada.

252
00:14:35,630 --> 00:14:37,280
‫De qualquer forma, o próximo é a quantia.

253
00:14:38,450 --> 00:14:40,760
‫Então, basicamente, o preço do produto

254
00:14:40,760 --> 00:14:42,940
‫que está sendo comprado.

255
00:14:42,940 --> 00:14:44,163
‫Então essa é a turnê. preço e agora

256
00:14:45,010 --> 00:14:47,990
‫precisamos multiplicar isso por 100.

257
00:14:47,990 --> 00:14:50,660
‫Porque esse valor deve ser em centavos.

258
00:14:50,660 --> 00:14:53,673
‫E assim, um dólar ou um euro ou realmente

259
00:14:54,870 --> 00:14:57,270
‫a maioria das moedas têm 100 centavos.

260
00:14:57,270 --> 00:15:00,640
‫Portanto, um dólar equivale a 100 centavos.

261
00:15:00,640 --> 00:15:02,920
‫E então, para convertê-lo em centavos, basta multiplicar por 100.

262
00:15:02,920 --> 00:15:06,663
‫Em seguida, também precisamos especificar a moeda.

263
00:15:08,040 --> 00:15:11,790
‫E então, neste caso, é o USD.

264
00:15:11,790 --> 00:15:14,110
‫Mas também pode ser

265
00:15:14,110 --> 00:15:18,850
‫assim, para o Euro é EUR e para outras moedas, você

266
00:15:20,439 --> 00:15:23,560
‫provavelmente deveria dar uma olhada na documentação.

267
00:15:23,560 --> 00:15:25,090
‫É claro que não

268
00:15:25,090 --> 00:15:27,670
‫posso cobrir todas as moedas que existem, certo?

269
00:15:27,670 --> 00:15:31,000
‫Enfim, finalmente especificamos a quantidade.

270
00:15:31,000 --> 00:15:35,760
‫E isso é apenas um tour neste caso.

271
00:15:35,760 --> 00:15:38,263
‫Então é isso.

272
00:15:41,110 --> 00:15:43,370
‫E então, basicamente, esta parte

273
00:15:43,370 --> 00:15:47,230
‫aqui é a informação sobre a sessão em si.

274
00:15:47,230 --> 00:15:48,800
‫E aqui estão as informações

275
00:15:48,800 --> 00:15:51,630
‫sobre o produto que o usuário está prestes a comprar.

276
00:15:51,630 --> 00:15:54,060
‫Tudo bem, agora vamos realmente armazenar a sessão.

277
00:15:54,060 --> 00:15:56,883
‫Então const sessão e agora vamos

278
00:15:57,810 --> 00:15:59,090
‫aguardar isso.

279
00:16:00,270 --> 00:16:03,000
‫Portanto, criar aqui basicamente retorna uma premissa

280
00:16:03,000 --> 00:16:05,850
‫porque definir todas essas opções aqui basicamente

281
00:16:05,850 --> 00:16:08,110
‫fará uma chamada de

282
00:16:08,110 --> 00:16:11,060
‫API para Stripe e, portanto, é claro que

283
00:16:11,060 --> 00:16:14,341
‫é uma função assíncrona que devemos aguardar aqui.

284
00:16:14,341 --> 00:16:16,470
‫Ok, mas de qualquer forma,

285
00:16:16,470 --> 00:16:19,790
‫esta agora é nossa sessão e, portanto, a última etapa

286
00:16:19,790 --> 00:16:22,740
‫é, claro, enviá-la de volta para o cliente.

287
00:16:22,740 --> 00:16:24,020
‫Então, como sempre,

288
00:16:24,020 --> 00:16:25,493
‫o status é sucesso.

289
00:16:29,480 --> 00:16:31,743
‫E então vamos simplesmente enviar a sessão assim.

290
00:16:33,460 --> 00:16:36,463
‫Tudo bem, então deveria ser isso.

291
00:16:38,896 --> 00:16:42,510
‫Nosso roteador já está configurado, então

292
00:16:42,510 --> 00:16:44,980
‫acho que podemos

293
00:16:44,980 --> 00:16:48,260
‫tentar fazer isso no Postman.

294
00:16:48,260 --> 00:16:49,950
‫Tudo bem, agora mais tarde

295
00:16:49,950 --> 00:16:53,470
‫é claro que não vamos permitir que ninguém faça isso usando o

296
00:16:53,470 --> 00:16:55,370
‫carteiro porque isso não faz muito sentido.

297
00:16:55,370 --> 00:16:57,650
‫Mas agora, como estamos

298
00:16:57,650 --> 00:16:59,990
‫apenas testando, faz muito sentido.

299
00:16:59,990 --> 00:17:02,060
‫Tudo bem, então vamos

300
00:17:02,060 --> 00:17:05,660
‫ao carteiro e criar uma nova solicitação.

301
00:17:05,660 --> 00:17:08,483
‫Então isso vai ser

302
00:17:11,150 --> 00:17:15,770
‫no bookings / uh, eu não tenho certeza.

303
00:17:17,768 --> 00:17:19,313
‫Sim, sessão de checkout e / tourId.

304
00:17:20,261 --> 00:17:24,473
‫Tudo bem, então vamos começar nossos tours aqui.

305
00:17:26,330 --> 00:17:28,823
‫Para obter o ID basicamente de lá.

306
00:17:31,030 --> 00:17:33,323
‫Então, vamos fazer o Sea Explorer.

307
00:17:34,560 --> 00:17:36,263
‫Ok, e isso deve ser suficiente.

308
00:17:41,700 --> 00:17:45,950
‫Oh, espere, é claro que não estamos logados.

309
00:17:45,950 --> 00:17:47,963
‫Então faça o login aqui.

310
00:17:50,022 --> 00:17:51,363
‫Agora estamos no admin,

311
00:17:54,010 --> 00:17:55,460
‫mas vamos usar outra pessoa aqui.

312
00:17:55,460 --> 00:17:57,370
‫E acho que usamos o

313
00:17:57,370 --> 00:17:59,860
‫Leo antes, então vamos agora usar esse usuário.

314
00:17:59,860 --> 00:18:01,813
‫Agora temos uma senha incorreta.

315
00:18:04,250 --> 00:18:07,053
‫Tudo bem, então vamos ver o que mais temos.

316
00:18:08,761 --> 00:18:11,320
‫Então, quais outros usuários poderíamos usar.

317
00:18:11,320 --> 00:18:14,470
‫E, na verdade, vamos usar Monica aqui.

318
00:18:14,470 --> 00:18:16,683
‫Por que não?

319
00:18:19,990 --> 00:18:21,530
‫Então, espero que a senha dela esteja correta.

320
00:18:21,530 --> 00:18:25,753
‫Bem, vamos tentar substituir isso

321
00:18:27,500 --> 00:18:30,410
‫aqui por test1234.

322
00:18:32,170 --> 00:18:33,883
‫Bem, talvez tenhamos mudado as

323
00:18:35,290 --> 00:18:38,040
‫senhas de todos esses usuários em algumas outras palestras antes.

324
00:18:38,040 --> 00:18:41,493
‫Então, vamos usar John aqui.

325
00:18:43,740 --> 00:18:46,320
‫Sei que nunca usamos John, então

326
00:18:46,320 --> 00:18:48,740
‫agora tem que funcionar.

327
00:18:48,740 --> 00:18:51,523
‫Oh, eu realmente vejo o erro que cometi antes.

328
00:18:55,250 --> 00:18:59,000
‫Então aqui não é natours, deve ser um exemplo. com.

329
00:18:59,000 --> 00:19:02,583
‫Então, vamos tentar de novo com a Monica aqui.

330
00:19:06,410 --> 00:19:08,460
‫Ou apenas com John.

331
00:19:11,990 --> 00:19:13,813
‫Isso é mais difícil do que eu esperava.

332
00:19:14,850 --> 00:19:18,000
‫Mas agora finalmente estamos logados.

333
00:19:18,000 --> 00:19:19,963
‫Tudo bem, e com

334
00:19:21,130 --> 00:19:24,500
‫isso, vamos tentar nossa sessão de checkout.

335
00:19:24,500 --> 00:19:26,743
‫Estamos perdendo a autorização daqui.

336
00:19:29,180 --> 00:19:31,463
‫Mais uma vez, e agora temos algum erro real aqui.

337
00:19:33,180 --> 00:19:37,270
‫Então, algo que realmente está vindo do

338
00:19:37,270 --> 00:19:40,370
‫código que acabamos de escrever.

339
00:19:40,370 --> 00:19:41,713
‫Tudo bem.

340
00:19:43,220 --> 00:19:44,550
‫Então, vamos verificar isso.

341
00:19:44,550 --> 00:19:46,223
‫E o problema é que aqui são, na verdade, sessões.

342
00:19:47,740 --> 00:19:51,200
‫Então, listre. Confira. sessões.

343
00:19:51,200 --> 00:19:54,963
‫Mais uma vez.

344
00:19:57,400 --> 00:19:58,383
‫Desta vez está demorando muito mais, o que é um bom sinal.

345
00:19:59,680 --> 00:20:03,850
‫E temos outro erro.

346
00:20:03,850 --> 00:20:05,740
‫Portanto, a linha 15 não pode ler o slug do nó.

347
00:20:05,740 --> 00:20:09,573
‫Tudo bem, isso é estranho porque deve

348
00:20:12,200 --> 00:20:15,510
‫haver uma lesma nesta turnê.

349
00:20:15,510 --> 00:20:18,463
‫Então, uh sim, você vê que aqui

350
00:20:19,980 --> 00:20:21,290
‫realmente está.

351
00:20:22,930 --> 00:20:25,660
‫Então, talvez algo tenha

352
00:20:25,660 --> 00:20:29,660
‫dado errado com a leitura dessa turnê.

353
00:20:29,660 --> 00:20:30,623
‫O que eu realmente não consigo entender por que isso seria.

354
00:20:31,580 --> 00:20:35,083
‫Mas vamos tentar registrar o tour no console.

355
00:20:35,970 --> 00:20:39,273
‫Tudo bem, e na verdade nós obtemos nulos.

356
00:20:46,970 --> 00:20:50,000
‫O que provavelmente significa

357
00:20:50,000 --> 00:20:54,480
‫que há um tour ID não definido corretamente.

358
00:20:54,480 --> 00:20:55,763
‫Oh, aqui está o problema.

359
00:20:56,750 --> 00:20:58,790
‫Então eu tenho, ID tudo em

360
00:20:58,790 --> 00:21:02,330
‫maiúsculas, mas aqui no controlador eu tenho o D em minúsculas.

361
00:21:02,330 --> 00:21:06,450
‫Então, assim.

362
00:21:06,450 --> 00:21:07,840
‫E esse é o

363
00:21:07,840 --> 00:21:10,790
‫pequeno tipo de bug que acontece o tempo todo, obviamente.

364
00:21:10,790 --> 00:21:12,183
‫Então, vamos ver qual é o próximo.

365
00:21:13,210 --> 00:21:15,040
‫Ah, e na verdade desta vez acertamos.

366
00:21:15,040 --> 00:21:18,280
‫Então você vê que é a sessão que acabamos de criar.

367
00:21:18,280 --> 00:21:22,050
‫E edita mais algumas outras coisas aqui, mas isso realmente

368
00:21:22,050 --> 00:21:24,290
‫não importa para nós agora.

369
00:21:24,290 --> 00:21:27,430
‫O que é realmente interessante de ver é

370
00:21:27,430 --> 00:21:29,340
‫que agora já podemos

371
00:21:29,340 --> 00:21:32,330
‫ver esse pagamento, ou pelo menos essa solicitação

372
00:21:32,330 --> 00:21:35,330
‫de pagamento, digamos em nossos painéis do drive.

373
00:21:35,330 --> 00:21:37,843
‫Então se formos lá

374
00:21:39,490 --> 00:21:44,490
‫e formos para pagamentos e depois para todos, vocês verão

375
00:21:44,540 --> 00:21:49,010
‫que este último aqui na verdade aconteceu agora mesmo.

376
00:21:49,010 --> 00:21:51,320
‫Então, se clicarmos nisso, você verá alguns dados sobre isso.

377
00:21:51,320 --> 00:21:56,320
‫Então você vê, por exemplo, que na verdade é sobre

378
00:21:56,630 --> 00:21:59,130
‫o Sea Explorer Tour.

379
00:21:59,130 --> 00:22:00,960
‫Você também tem o preço, também tem a imagem.

380
00:22:00,960 --> 00:22:03,983
‫Provavelmente também alguns dados sobre o usuário.

381
00:22:04,920 --> 00:22:07,800
‫E na verdade não, realmente não.

382
00:22:07,800 --> 00:22:10,530
‫Mas o que importa aqui é que diz incompleto.

383
00:22:10,530 --> 00:22:14,400
‫E isso porque criamos apenas a sessão

384
00:22:14,400 --> 00:22:17,160
‫de checkout no servidor.

385
00:22:17,160 --> 00:22:18,310
‫Portanto, estamos perdendo

386
00:22:18,310 --> 00:22:20,440
‫a segunda etapa em que, na

387
00:22:20,440 --> 00:22:22,750
‫verdade, cobramos o cartão de crédito do cliente.

388
00:22:22,750 --> 00:22:24,450
‫Então, já que estamos perdendo isso,

389
00:22:24,450 --> 00:22:26,210
‫vamos fazer isso direito no próximo vídeo.

