﻿1
00:00:01,060 --> 00:00:03,650
‫Istruttore: Quindi in questo video

2
00:00:03,650 --> 00:00:07,240
‫integriamo Stripe nel nostro backend creando quell'endpoint API

3
00:00:07,240 --> 00:00:10,983
‫che creerà e invierà una sessione di checkout Stripe.

4
00:00:12,870 --> 00:00:15,717
‫E quindi, a questo punto, inizieremo a creare la

5
00:00:15,717 --> 00:00:17,110
‫nostra prossima risorsa.

6
00:00:17,110 --> 00:00:18,860
‫E quindi queste sono le prenotazioni.

7
00:00:18,860 --> 00:00:21,413
‫E comincerò da qui con i percorsi di prenotazione.

8
00:00:24,995 --> 00:00:25,828
‫Quindi

9
00:00:27,200 --> 00:00:29,100
‫prenotazione percorsi. js.

10
00:00:29,100 --> 00:00:31,660
‫E l'abbiamo fatto così tante volte adesso.

11
00:00:31,660 --> 00:00:33,150
‫Allora vado avanti, copio tutto

12
00:00:33,150 --> 00:00:34,480
‫questo codice e

13
00:00:35,890 --> 00:00:37,843
‫lo metto qui nei percorsi di prenotazione.

14
00:00:39,410 --> 00:00:42,073
‫E poi semplicemente rimuovi tutto questo.

15
00:00:44,230 --> 00:00:45,923
‫E anche questo.

16
00:00:47,310 --> 00:00:50,060
‫Inoltre, non abbiamo bisogno di parametri di unione

17
00:00:51,000 --> 00:00:54,530
‫e avremo un controller di prenotazione invece di un controller

18
00:00:54,530 --> 00:00:55,593
‫di revisione.

19
00:00:57,850 --> 00:01:02,203
‫Quindi, controllore della prenotazione, creiamolo.

20
00:01:03,844 --> 00:01:04,677
‫Così. js che

21
00:01:09,317 --> 00:01:10,170
‫sembra corretto e integriamo

22
00:01:11,520 --> 00:01:12,570
‫anche questo diritto nell'app. js.

23
00:01:13,460 --> 00:01:17,503
‫E quindi mettiamolo qui dopo

24
00:01:18,970 --> 00:01:20,970
‫il router di revisione.

25
00:01:20,970 --> 00:01:22,423
‫Quindi qui

26
00:01:25,430 --> 00:01:29,940
‫sono solo di nuovo le prenotazioni e poi, naturalmente,

27
00:01:32,100 --> 00:01:34,370
‫quaggiù integrale nella nostra API.

28
00:01:34,370 --> 00:01:35,513
‫Quindi bookings

29
00:01:40,190 --> 00:01:42,220
‫e qui bookings router.

30
00:01:43,360 --> 00:01:44,913
‫E penso che dovrebbe essere solo la prenotazione.

31
00:01:46,970 --> 00:01:49,223
‫Quindi sistemiamo anche qui.

32
00:01:50,170 --> 00:01:52,703
‫E infatti lo chiamiamo router di prenotazione.

33
00:01:54,180 --> 00:01:57,010
‫E lo stesso qui, non si tratta di prenotazioni

34
00:01:57,010 --> 00:01:58,880
‫ma di percorsi di prenotazione.

35
00:01:58,880 --> 00:02:00,700
‫Quindi salvalo.

36
00:02:00,700 --> 00:02:01,863
‫Chiudi questo e

37
00:02:04,100 --> 00:02:05,990
‫questo e anche questo qui.

38
00:02:05,990 --> 00:02:09,090
‫E quindi ora andiamo avanti e creiamo

39
00:02:09,090 --> 00:02:11,670
‫il nostro primo percorso qui.

40
00:02:11,670 --> 00:02:13,083
‫Quindi passiamo al router. get e il percorso

41
00:02:14,980 --> 00:02:19,980
‫che creerà qui non seguirà ancora una volta

42
00:02:20,930 --> 00:02:24,160
‫il principio del resto perché questo non riguarderà davvero la

43
00:02:24,160 --> 00:02:26,630
‫creazione, l'acquisizione o l'aggiornamento di alcuna prenotazione.

44
00:02:26,630 --> 00:02:30,080
‫Invece questo percorso sarà solo per il cliente

45
00:02:30,080 --> 00:02:33,060
‫per ottenere una sessione di pagamento.

46
00:02:33,060 --> 00:02:35,390
‫E quindi chiamiamola effettivamente questa

47
00:02:35,390 --> 00:02:37,140
‫sessione di pagamento.

48
00:02:38,810 --> 00:02:41,733
‫Quindi dobbiamo proteggere questo percorso in

49
00:02:43,060 --> 00:02:45,600
‫modo che solo gli utenti

50
00:02:45,600 --> 00:02:48,820
‫autenticati possano effettivamente ottenere una sessione di pagamento.

51
00:02:48,820 --> 00:02:50,380
‫Quindi ha senso, no?

52
00:02:50,380 --> 00:02:51,863
‫E poi aggiungi il controller di prenotazione.

53
00:02:52,840 --> 00:02:55,603
‫Creeremo un gestore di

54
00:02:56,460 --> 00:02:59,253
‫route chiamato get checkout session.

55
00:03:02,477 --> 00:03:06,558
‫Va bene.

56
00:03:06,558 --> 00:03:07,391
‫Quindi

57
00:03:08,512 --> 00:03:12,422
‫copiamo questo e creiamolo qui alle esportazioni. getCheckoutSession quindi la richiesta risponde

58
00:03:12,422 --> 00:03:14,839
‫successivamente.

59
00:03:16,600 --> 00:03:19,513
‫E ora iniziamo a lavorare.

60
00:03:21,910 --> 00:03:24,740
‫Ora in realtà c'è un'altra cosa che dobbiamo fare qui

61
00:03:24,740 --> 00:03:27,230
‫nelle rotte che è specificare un parametro URL.

62
00:03:27,230 --> 00:03:31,550
‫E quindi questo sarà l'ID del tour.

63
00:03:31,550 --> 00:03:34,083
‫Ok, quindi in pratica vogliamo che

64
00:03:35,970 --> 00:03:39,350
‫il cliente invii l'ID del tour che è attualmente prenotato.

65
00:03:39,350 --> 00:03:42,920
‫Ed è così che possiamo riempire la sessione di checkout con tutti

66
00:03:42,920 --> 00:03:46,010
‫i dati necessari, come il nome del tour e il

67
00:03:46,010 --> 00:03:48,230
‫prezzo del tour e tutto il resto.

68
00:03:48,230 --> 00:03:52,220
‫Bene, ora abbiamo accesso all'ID del tour in questa

69
00:03:52,220 --> 00:03:55,780
‫funzione di gestione e quindi la prima cosa

70
00:03:55,780 --> 00:03:57,470
‫che faremo è

71
00:03:57,470 --> 00:04:00,030
‫trovare quel tour nel nostro database.

72
00:04:00,030 --> 00:04:02,610
‫Va bene, quindi per questo abbiamo ovviamente bisogno del modello del tour.

73
00:04:02,610 --> 00:04:06,260
‫Quindi veniamo qui dal tour controller

74
00:04:06,260 --> 00:04:09,210
‫e prendiamolo da lì.

75
00:04:09,210 --> 00:04:11,190
‫Inoltre avremo bisogno di

76
00:04:11,190 --> 00:04:14,120
‫questo catchAsync e quindi davvero tutto questo.

77
00:04:14,120 --> 00:04:15,793
‫Quindi sto copiando tutto e anche se

78
00:04:16,870 --> 00:04:18,510
‫non ne ho bisogno subito,

79
00:04:18,510 --> 00:04:20,730
‫probabilmente ne avrò bisogno comunque un po' più tardi.

80
00:04:20,730 --> 00:04:23,363
‫Va bene.

81
00:04:24,629 --> 00:04:25,462
‫Quindi impostiamo di nuovo i nostri passaggi qui.

82
00:04:27,840 --> 00:04:30,600
‫Quindi prendi il tour attualmente prenotato.

83
00:04:30,600 --> 00:04:35,600
‫Quindi, come secondo passaggio, creiamo la sessione di

84
00:04:38,250 --> 00:04:43,250
‫checkout e infine la inviamo al cliente.

85
00:04:45,550 --> 00:04:47,633
‫Va bene, quindi il primo passo è davvero facile.

86
00:04:53,376 --> 00:04:57,043
‫Quindi aspetteremo.

87
00:04:59,930 --> 00:05:01,053
‫Quindi tour. findbyId

88
00:05:02,140 --> 00:05:06,120
‫che è req. parametri. tourId.

89
00:05:07,210 --> 00:05:10,173
‫Giusto, questo

90
00:05:14,790 --> 00:05:18,112
‫era il nome che gli abbiamo dato nel parametro URL.

91
00:05:18,112 --> 00:05:19,810
‫E ovviamente, questa è ora

92
00:05:19,810 --> 00:05:24,250
‫una funzione asincrona con un catchAsync oltre a quello o intorno a quello, in realtà.

93
00:05:25,120 --> 00:05:29,623
‫Ottimo, il prossimo passo è creare quella sessione qui.

94
00:05:33,170 --> 00:05:36,360
‫E per questo abbiamo effettivamente bisogno di installare

95
00:05:36,360 --> 00:05:38,410
‫questo pacchetto NPM dell'unità.

96
00:05:38,410 --> 00:05:40,323
‫Quindi facciamolo qui.

97
00:05:41,920 --> 00:05:45,650
‫NPM installa Stripe.

98
00:05:45,650 --> 00:05:50,290
‫E nel frattempo andremo alla nostra dashboard di Stripe e

99
00:05:50,290 --> 00:05:54,000
‫prenderemo la nostra chiave segreta da qui.

100
00:05:54,000 --> 00:05:56,003
‫Quindi premi questo pulsante qui

101
00:05:57,030 --> 00:05:59,280
‫e poi vai avanti e copialo.

102
00:05:59,280 --> 00:06:03,040
‫E vedi che qui nelle chiavi in realtà

103
00:06:03,040 --> 00:06:04,630
‫c'è scritto test.

104
00:06:04,630 --> 00:06:06,380
‫E così di nuovo, questi qui

105
00:06:06,380 --> 00:06:09,920
‫sono solo per i test e poi una volta che hai il tuo

106
00:06:09,920 --> 00:06:12,530
‫account Stripe attivo, puoi ottenere le tue chiavi API live.

107
00:06:12,530 --> 00:06:14,993
‫Ok, ora come con qualsiasi altra

108
00:06:16,390 --> 00:06:19,230
‫chiave, le inseriremo qui nel nostro file di configurazione.

109
00:06:19,230 --> 00:06:22,743
‫Quindi la chiave segreta Stripe è uguale a

110
00:06:25,490 --> 00:06:26,370
‫questa.

111
00:06:29,490 --> 00:06:32,670
‫E questo non è corretto qui.

112
00:06:32,670 --> 00:06:34,120
‫Va bene, quindi copia questo.

113
00:06:40,700 --> 00:06:43,163
‫Torna al nostro controllore di prenotazione.

114
00:06:44,730 --> 00:06:46,610
‫Ora richiediamo effettivamente che questo

115
00:06:46,610 --> 00:06:49,400
‫pacchetto di unità sia stato installato con successo qui.

116
00:06:49,400 --> 00:06:52,620
‫E solo con tutti gli altri pacchetti prima

117
00:06:52,620 --> 00:06:54,810
‫assicurati di essere effettivamente sulla

118
00:06:54,810 --> 00:06:56,780
‫stessa versione di me.

119
00:06:56,780 --> 00:06:58,030
‫E vedi che sono qui al nuovissimo 7. 0. 0.

120
00:06:59,050 --> 00:07:02,137
‫Quindi questo è davvero nuovo di zecca.

121
00:07:03,120 --> 00:07:04,730
‫E in realtà è perché

122
00:07:04,730 --> 00:07:07,650
‫molte cose sono cambiate con Stripe un paio di giorni fa.

123
00:07:07,650 --> 00:07:10,370
‫Quindi ho dovuto modificare un paio di queste implementazioni.

124
00:07:10,370 --> 00:07:13,113
‫Ad ogni modo,

125
00:07:15,190 --> 00:07:20,190
‫const stripe equal require e poi stripe.

126
00:07:24,440 --> 00:07:26,000
‫Ora questo qui esporrà fondamentalmente una funzione.

127
00:07:26,000 --> 00:07:28,890
‫E di solito quello che facciamo subito è passare la

128
00:07:28,890 --> 00:07:30,940
‫nostra chiave segreta proprio in quello.

129
00:07:30,940 --> 00:07:34,670
‫E così questo ci darà un oggetto Stripe

130
00:07:34,670 --> 00:07:37,020
‫con cui possiamo lavorare.

131
00:07:37,020 --> 00:07:38,123
‫In modo che ora al processo. avv. STRIPE_SECRET_KEY.

132
00:07:39,410 --> 00:07:43,057
‫Ok, quindi ora usiamolo.

133
00:07:46,930 --> 00:07:51,093
‫Quindi diciamo Stripe. guardare. sessione. creare.

134
00:07:52,700 --> 00:07:57,700
‫E poi il solito oggetto di opzioni.

135
00:08:02,450 --> 00:08:06,040
‫Bene, ora ci sono un sacco di

136
00:08:06,040 --> 00:08:08,680
‫opzioni che possiamo impostare qui.

137
00:08:08,680 --> 00:08:10,060
‫Ma ne servono solo tre.

138
00:08:10,060 --> 00:08:12,290
‫Quindi il primo sono i tipi di metodo di pagamento.

139
00:08:12,290 --> 00:08:15,083
‫Quindi tipi di metodo di pagamento.

140
00:08:16,010 --> 00:08:20,213
‫Quindi questo è un array in cui possiamo specificare più tipi

141
00:08:22,950 --> 00:08:26,740
‫e la carta è per la carta di credito.

142
00:08:26,740 --> 00:08:28,920
‫E in questo momento sono in realtà tutte

143
00:08:28,920 --> 00:08:31,780
‫le opzioni di pagamento che possiamo usare per il checkout di Stripe.

144
00:08:31,780 --> 00:08:34,330
‫Ma ho letto che in futuro aggiungeranno molto di più.

145
00:08:34,330 --> 00:08:38,130
‫Quindi puoi essere informato da questo.

146
00:08:38,130 --> 00:08:41,550
‫Quindi dobbiamo specificare l'URL di successo.

147
00:08:41,550 --> 00:08:44,023
‫E quindi questo è fondamentalmente l'URL che verrà

148
00:08:46,240 --> 00:08:49,350
‫chiamato non appena una carta di credito sarà stata addebitata con successo.

149
00:08:49,350 --> 00:08:52,690
‫Quindi, non appena l'acquisto è andato a buon

150
00:08:52,690 --> 00:08:55,780
‫fine, l'utente verrà reindirizzato a questo URL.

151
00:08:55,780 --> 00:08:58,860
‫E per ora, specifichiamolo semplicemente come nostra homepage.

152
00:08:58,860 --> 00:09:02,123
‫Va bene e lo faremo

153
00:09:03,060 --> 00:09:06,290
‫come prima con req. protocol:// e poi

154
00:09:06,290 --> 00:09:10,963
‫request. ottenere l'ospite.

155
00:09:14,270 --> 00:09:18,663
‫Quindi fondamentalmente solo il nostro URL di casa.

156
00:09:20,670 --> 00:09:23,403
‫Quindi dobbiamo anche specificare l'URL di cancellazione.

157
00:09:24,330 --> 00:09:27,707
‫Quindi proprio così.

158
00:09:30,530 --> 00:09:31,773
‫E questo sarà simile.

159
00:09:33,010 --> 00:09:34,763
‫E quindi fondamentalmente è la pagina

160
00:09:36,260 --> 00:09:38,800
‫in cui l'utente va se sceglie di annullare il pagamento corrente.

161
00:09:38,800 --> 00:09:41,980
‫E in effetti facciamoli andare alla pagina del

162
00:09:41,980 --> 00:09:44,610
‫tour dove erano in precedenza.

163
00:09:44,610 --> 00:09:46,360
‫E quindi questo è fondamentalmente tour/tour. lumaca.

164
00:09:46,360 --> 00:09:50,493
‫Successivamente, possiamo anche specificare l'e-mail del cliente.

165
00:09:56,040 --> 00:09:59,870
‫E questo è molto utile perché ovviamente abbiamo

166
00:09:59,870 --> 00:10:02,410
‫già accesso all'e-mail del cliente.

167
00:10:02,410 --> 00:10:05,380
‫E così con questo possiamo salvare l'utente di un passaggio

168
00:10:05,380 --> 00:10:08,090
‫e rendere l'esperienza di pagamento molto più agevole.

169
00:10:08,090 --> 00:10:11,080
‫Va bene, quindi ricorda che questo è un percorso protetto.

170
00:10:11,080 --> 00:10:15,230
‫E così come sempre l'utente è già alla richiesta.

171
00:10:15,230 --> 00:10:19,320
‫E quindi possiamo dire richiesta. utente. e-mail.

172
00:10:19,320 --> 00:10:23,763
‫Successivamente, possiamo anche

173
00:10:25,030 --> 00:10:28,860
‫specificare un campo personalizzato chiamato ID di riferimento del cliente.

174
00:10:28,860 --> 00:10:31,560
‫E questo suona un po' strano,

175
00:10:31,560 --> 00:10:34,610
‫ma in realtà sarà davvero importante per noi.

176
00:10:34,610 --> 00:10:36,340
‫Quindi questo campo ci

177
00:10:36,340 --> 00:10:39,900
‫permetterà di passare alcuni dati sulla sessione che stiamo creando.

178
00:10:39,900 --> 00:10:42,430
‫E questo è importante perché in seguito, una volta

179
00:10:42,430 --> 00:10:44,400
‫che l'acquisto è andato a

180
00:10:44,400 --> 00:10:46,530
‫buon fine, avremo nuovamente accesso all'oggetto sessione.

181
00:10:46,530 --> 00:10:50,250
‫E per allora, vogliamo creare una nuova

182
00:10:50,250 --> 00:10:52,830
‫prenotazione nel nostro database.

183
00:10:52,830 --> 00:10:54,400
‫Quindi ricorda il diagramma

184
00:10:54,400 --> 00:10:56,380
‫che ti ho mostrato nell'ultima lezione.

185
00:10:56,380 --> 00:10:57,610
‫Fondamentalmente quello di cui sto

186
00:10:57,610 --> 00:10:59,240
‫parlando qui è l'ultimo passaggio in quel diagramma.

187
00:10:59,240 --> 00:11:01,890
‫E ricorda anche come funzionerà

188
00:11:01,890 --> 00:11:04,670
‫solo con i siti Web distribuiti.

189
00:11:04,670 --> 00:11:06,130
‫Ma comunque, prepariamoci già qui.

190
00:11:06,130 --> 00:11:08,900
‫Ok, quindi per creare una nuova prenotazione nel

191
00:11:08,900 --> 00:11:12,860
‫nostro database avremo bisogno dell'ID dell'utente, dell'ID del tour e del prezzo.

192
00:11:12,860 --> 00:11:16,890
‫Ricordati che?

193
00:11:16,890 --> 00:11:18,260
‫E in

194
00:11:18,260 --> 00:11:20,460
‫questa sessione abbiamo già accesso

195
00:11:20,460 --> 00:11:22,315
‫all'e-mail dell'utente e da quella

196
00:11:22,315 --> 00:11:26,290
‫possiamo quindi ricreare l'ID dell'utente perché l'e-mail qui è unica.

197
00:11:26,290 --> 00:11:28,520
‫Specifichiamo anche il prezzo del tour qui

198
00:11:28,520 --> 00:11:31,900
‫in un secondo e quindi tutto ciò che manca è l'ID del tour.

199
00:11:31,900 --> 00:11:35,100
‫E quindi è quello che specificheremo qui su

200
00:11:35,100 --> 00:11:37,130
‫questo campo personalizzato fondamentalmente.

201
00:11:37,130 --> 00:11:39,263
‫Quindi questo è chiamato ID di riferimento del cliente.

202
00:11:41,320 --> 00:11:45,763
‫E tutto ciò che ho appena spiegato prima in realtà avrà

203
00:11:47,500 --> 00:11:49,750
‫molto più senso una

204
00:11:49,750 --> 00:11:52,210
‫volta implementato l'ultimo passaggio della creazione

205
00:11:52,210 --> 00:11:54,630
‫di una prenotazione nel database, giusto?

206
00:11:54,630 --> 00:11:58,240
‫Comunque, l'ID del tour è su richiesta. parametri. tourId.

207
00:11:58,240 --> 00:12:02,667
‫Va bene, e

208
00:12:05,371 --> 00:12:08,080
‫ora, finalmente, specificheremo alcuni dettagli sul prodotto stesso.

209
00:12:08,080 --> 00:12:11,010
‫Quindi il nostro tour in questo caso.

210
00:12:11,010 --> 00:12:13,093
‫E così si chiamano

211
00:12:14,100 --> 00:12:17,720
‫elementi pubblicitari che accettano un array di oggetti.

212
00:12:17,720 --> 00:12:19,700
‫Quindi fondamentalmente uno per articolo

213
00:12:19,700 --> 00:12:22,330
‫e quindi nel nostro caso sarà solo uno.

214
00:12:22,330 --> 00:12:24,733
‫Quindi dobbiamo specificare il nome

215
00:12:25,940 --> 00:12:28,640
‫del prodotto e quindi è in tour. nome e come sempre a quel

216
00:12:30,160 --> 00:12:34,810
‫nome aggiungiamo anche il tour.

217
00:12:34,810 --> 00:12:39,423
‫Quindi possiamo anche specificare una descrizione.

218
00:12:41,720 --> 00:12:43,933
‫E tutti questi nomi di campo qui vengono davvero da Stripe.

219
00:12:45,840 --> 00:12:48,950
‫Quindi non possiamo creare i nostri campi.

220
00:12:48,950 --> 00:12:51,200
‫Quindi, se provi a farlo, otterrai davvero qualche errore.

221
00:12:51,200 --> 00:12:54,683
‫Va bene, quindi nella descrizione metterò il riassunto del tour,

222
00:12:55,530 --> 00:12:57,510
‫quindi quella simpatica breve frase

223
00:12:57,510 --> 00:12:59,373
‫che descriverà ogni tour.

224
00:13:00,540 --> 00:13:05,540
‫Quindi possiamo anche specificare un array di immagini.

225
00:13:06,400 --> 00:13:10,750
‫Ora queste immagini qui devono essere immagini dal vivo.

226
00:13:10,750 --> 00:13:14,120
‫Quindi fondamentalmente le immagini che sono ospitate

227
00:13:14,120 --> 00:13:17,260
‫su Internet perché Stripe caricherà effettivamente

228
00:13:17,260 --> 00:13:20,090
‫questa immagine sul proprio server.

229
00:13:20,090 --> 00:13:21,680
‫E quindi questa è un'altra delle cose che possiamo

230
00:13:21,680 --> 00:13:23,740
‫davvero fare solo una volta che il sito web è stato implementato.

231
00:13:23,740 --> 00:13:27,470
‫Ma per ora, come segnaposto, utilizzerò fondamentalmente quelli del nostro

232
00:13:27,470 --> 00:13:30,680
‫sito Web di esempio ospitato su natours. sviluppatore

233
00:13:30,680 --> 00:13:34,760
‫Quindi andiamo su quel sito web.

234
00:13:34,760 --> 00:13:36,623
‫Quindi questo è quello di natours. sviluppatore

235
00:13:38,100 --> 00:13:41,050
‫E l'immagine che sceglierò è l'immagine di copertina.

236
00:13:41,050 --> 00:13:44,500
‫Quindi esaminiamo quell'immagine.

237
00:13:44,500 --> 00:13:46,283
‫Quindi questo qui e copia l'indirizzo del link qui.

238
00:13:47,130 --> 00:13:51,103
‫Va bene.

239
00:13:52,396 --> 00:13:53,710
‫Quindi questo è

240
00:13:53,710 --> 00:13:58,140
‫un array perché possiamo specificare più immagini ma in realtà ne vogliamo solo una.

241
00:13:58,140 --> 00:14:00,673
‫E infatti abbiamo natours. dev/images/tours e poi il

242
00:14:01,790 --> 00:14:05,950
‫nome dell'immagine.

243
00:14:05,950 --> 00:14:07,940
‫E questo lo sostituirò semplicemente con tour. copertina dell'immagine.

244
00:14:07,940 --> 00:14:11,810
‫E funzionerà perché

245
00:14:11,810 --> 00:14:14,950
‫i nomi delle immagini su natours. dev sono esattamente gli stessi che abbiamo

246
00:14:14,950 --> 00:14:18,920
‫qui nel nostro progetto.

247
00:14:18,920 --> 00:14:20,053
‫Quindi tour. immagineCopertina.

248
00:14:21,560 --> 00:14:23,500
‫Quindi questa è

249
00:14:26,580 --> 00:14:29,980
‫un'altra cosa che dobbiamo effettivamente cambiare una volta messo in produzione il nostro sito web.

250
00:14:29,980 --> 00:14:32,520
‫E in realtà tengo una

251
00:14:32,520 --> 00:14:35,630
‫lista di quella roba così non dimentichiamo nulla.

252
00:14:35,630 --> 00:14:37,280
‫Comunque, il prossimo è l'importo.

253
00:14:38,450 --> 00:14:40,760
‫Quindi sostanzialmente il prezzo del

254
00:14:40,760 --> 00:14:42,940
‫prodotto che viene acquistato.

255
00:14:42,940 --> 00:14:44,163
‫Quindi questo è il tour. prezzo e ora

256
00:14:45,010 --> 00:14:47,990
‫dobbiamo moltiplicarlo per 100.

257
00:14:47,990 --> 00:14:50,660
‫Perché questo importo dovrebbe essere in centesimi.

258
00:14:50,660 --> 00:14:53,673
‫E così un dollaro o un euro o davvero la

259
00:14:54,870 --> 00:14:57,270
‫maggior parte delle valute ha 100 centesimi.

260
00:14:57,270 --> 00:15:00,640
‫Quindi un dollaro equivale a 100 centesimi.

261
00:15:00,640 --> 00:15:02,920
‫E quindi per convertirlo in centesimi, basta moltiplicarlo per 100.

262
00:15:02,920 --> 00:15:06,663
‫Quindi dobbiamo anche specificare la valuta.

263
00:15:08,040 --> 00:15:11,790
‫E quindi questo è in questo caso USD.

264
00:15:11,790 --> 00:15:14,110
‫Ma potrebbe anche essere

265
00:15:14,110 --> 00:15:18,850
‫come, per l'euro è EUR e per altre valute,

266
00:15:20,439 --> 00:15:23,560
‫dovresti probabilmente dare un'occhiata alla documentazione.

267
00:15:23,560 --> 00:15:25,090
‫Quindi ovviamente non posso

268
00:15:25,090 --> 00:15:27,670
‫coprire tutte le valute che ci sono, giusto?

269
00:15:27,670 --> 00:15:31,000
‫Comunque, finalmente specifichiamo anche la quantità.

270
00:15:31,000 --> 00:15:35,760
‫E quindi questo è solo un tour in questo caso.

271
00:15:35,760 --> 00:15:38,263
‫Quindi è davvero così.

272
00:15:41,110 --> 00:15:43,370
‫E quindi fondamentalmente questa

273
00:15:43,370 --> 00:15:47,230
‫parte qui è l'informazione sulla sessione stessa.

274
00:15:47,230 --> 00:15:48,800
‫E poi ecco le

275
00:15:48,800 --> 00:15:51,630
‫informazioni sul prodotto che l'utente sta per acquistare.

276
00:15:51,630 --> 00:15:54,060
‫Bene, ora memorizziamo effettivamente la sessione.

277
00:15:54,060 --> 00:15:56,883
‫Quindi const sessione e ora

278
00:15:57,810 --> 00:15:59,090
‫aspettiamo questo.

279
00:16:00,270 --> 00:16:03,000
‫Quindi questa creazione qui sostanzialmente restituisce una

280
00:16:03,000 --> 00:16:05,850
‫premessa perché l'impostazione di tutte queste opzioni

281
00:16:05,850 --> 00:16:08,110
‫qui fondamentalmente eseguirà una

282
00:16:08,110 --> 00:16:11,060
‫chiamata API a Stripe e quindi ovviamente questa

283
00:16:11,060 --> 00:16:14,341
‫è una funzione asincrona che dovremmo aspettare qui.

284
00:16:14,341 --> 00:16:16,470
‫Ok, ma comunque questa

285
00:16:16,470 --> 00:16:19,790
‫è ora la nostra sessione e quindi l'ultimo

286
00:16:19,790 --> 00:16:22,740
‫passo è ovviamente rispedirla al cliente.

287
00:16:22,740 --> 00:16:24,020
‫Quindi, come sempre,

288
00:16:24,020 --> 00:16:25,493
‫lo stato è il successo.

289
00:16:29,480 --> 00:16:31,743
‫E poi inviamo semplicemente la sessione in questo modo.

290
00:16:33,460 --> 00:16:36,463
‫Va bene, quindi dovrebbe essere così.

291
00:16:38,896 --> 00:16:42,510
‫Il nostro router è già configurato e

292
00:16:42,510 --> 00:16:44,980
‫quindi penso che

293
00:16:44,980 --> 00:16:48,260
‫ora potremmo effettivamente provarlo in postino.

294
00:16:48,260 --> 00:16:49,950
‫Va bene, ora più

295
00:16:49,950 --> 00:16:53,470
‫tardi ovviamente non permetteremo a nessuno di farlo usando il

296
00:16:53,470 --> 00:16:55,370
‫postino perché non ha molto senso.

297
00:16:55,370 --> 00:16:57,650
‫Ma ora, poiché lo stiamo

298
00:16:57,650 --> 00:16:59,990
‫solo testando, in realtà ha molto senso.

299
00:16:59,990 --> 00:17:02,060
‫Va bene, allora andiamo

300
00:17:02,060 --> 00:17:05,660
‫dal postino e creiamo una nuova richiesta.

301
00:17:05,660 --> 00:17:08,483
‫Quindi sarà alle

302
00:17:11,150 --> 00:17:15,770
‫prenotazioni/ uh, non ne sono proprio sicuro.

303
00:17:17,768 --> 00:17:19,313
‫Sì, quindi checkout session e poi /tourId.

304
00:17:20,261 --> 00:17:24,473
‫Va bene, quindi mettiamo qui i nostri tour.

305
00:17:26,330 --> 00:17:28,823
‫Per ottenere l'ID da lì in pratica.

306
00:17:31,030 --> 00:17:33,323
‫Quindi facciamo il Sea Explorer.

307
00:17:34,560 --> 00:17:36,263
‫Ok, e questo dovrebbe essere sufficiente.

308
00:17:41,700 --> 00:17:45,950
‫Oh aspetta, ovviamente non abbiamo effettuato l'accesso.

309
00:17:45,950 --> 00:17:47,963
‫Quindi accedi qui.

310
00:17:50,022 --> 00:17:51,363
‫Ora siamo in admin,

311
00:17:54,010 --> 00:17:55,460
‫ma usiamo qualcun altro qui.

312
00:17:55,460 --> 00:17:57,370
‫E penso che abbiamo

313
00:17:57,370 --> 00:17:59,860
‫usato Leo prima, quindi ora usiamo quell'utente.

314
00:17:59,860 --> 00:18:01,813
‫Ora abbiamo una password errata.

315
00:18:04,250 --> 00:18:07,053
‫Va bene, vediamo cos'altro abbiamo.

316
00:18:08,761 --> 00:18:11,320
‫Quindi quali altri utenti potremmo usare.

317
00:18:11,320 --> 00:18:14,470
‫E in realtà usiamo Monica qui.

318
00:18:14,470 --> 00:18:16,683
‫Perchè no?

319
00:18:19,990 --> 00:18:21,530
‫Quindi speriamo che la sua password sia corretta.

320
00:18:21,530 --> 00:18:25,753
‫Bene, proviamo a sostituirlo qui

321
00:18:27,500 --> 00:18:30,410
‫con test1234.

322
00:18:32,170 --> 00:18:33,883
‫Bene, forse abbiamo cambiato le

323
00:18:35,290 --> 00:18:38,040
‫password di tutti questi utenti in altre lezioni prima.

324
00:18:38,040 --> 00:18:41,493
‫Quindi usiamo John qui.

325
00:18:43,740 --> 00:18:46,320
‫Quindi so che non abbiamo mai usato

326
00:18:46,320 --> 00:18:48,740
‫John, quindi ora deve funzionare.

327
00:18:48,740 --> 00:18:51,523
‫Oh, in realtà vedo l'errore che ho appena fatto prima.

328
00:18:55,250 --> 00:18:59,000
‫Quindi qui non è natours, deve essere un esempio. com.

329
00:18:59,000 --> 00:19:02,583
‫Quindi proviamo di nuovo con Monica qui.

330
00:19:06,410 --> 00:19:08,460
‫O davvero solo con John.

331
00:19:11,990 --> 00:19:13,813
‫Questo è più difficile di quanto mi aspettassi.

332
00:19:14,850 --> 00:19:18,000
‫Ma ora finalmente siamo registrati.

333
00:19:18,000 --> 00:19:19,963
‫Va bene, quindi con

334
00:19:21,130 --> 00:19:24,500
‫questo, proviamo a ottenere la nostra sessione di pagamento.

335
00:19:24,500 --> 00:19:26,743
‫Ci manca l'autorizzazione da qui.

336
00:19:29,180 --> 00:19:31,463
‫Ancora una volta, e ora otteniamo un vero errore qui.

337
00:19:33,180 --> 00:19:37,270
‫Quindi qualcosa che in realtà proviene dal

338
00:19:37,270 --> 00:19:40,370
‫codice che abbiamo appena scritto.

339
00:19:40,370 --> 00:19:41,713
‫Va bene.

340
00:19:43,220 --> 00:19:44,550
‫Quindi diamo un'occhiata.

341
00:19:44,550 --> 00:19:46,223
‫E il problema è che qui si tratta in realtà di sessioni.

342
00:19:47,740 --> 00:19:51,200
‫Quindi striscia. guardare. sessioni.

343
00:19:51,200 --> 00:19:54,963
‫Un'altra volta.

344
00:19:57,400 --> 00:19:58,383
‫Questa volta ci vuole molto più tempo, il che è un buon segno.

345
00:19:59,680 --> 00:20:03,850
‫E abbiamo un altro errore.

346
00:20:03,850 --> 00:20:05,740
‫Quindi la riga 15 non può leggere lo slug del nodo.

347
00:20:05,740 --> 00:20:09,573
‫D'accordo, beh, sicuramente è strano perché dovrebbe

348
00:20:12,200 --> 00:20:15,510
‫esserci una lumaca in questo tour.

349
00:20:15,510 --> 00:20:18,463
‫Quindi uh sì, vedi che qui lo

350
00:20:19,980 --> 00:20:21,290
‫è davvero.

351
00:20:22,930 --> 00:20:25,660
‫Quindi forse qualcosa è

352
00:20:25,660 --> 00:20:29,660
‫andato storto durante la lettura di questo tour.

353
00:20:29,660 --> 00:20:30,623
‫Cosa che non riesco davvero a capire perché dovrebbe essere.

354
00:20:31,580 --> 00:20:35,083
‫Ma proviamo a registrare il tour sulla console.

355
00:20:35,970 --> 00:20:39,273
‫Va bene, e in realtà otteniamo zero.

356
00:20:46,970 --> 00:20:50,000
‫Il che probabilmente significa

357
00:20:50,000 --> 00:20:54,480
‫che c'è un ID tour non definito correttamente.

358
00:20:54,480 --> 00:20:55,763
‫Oh, ecco il problema.

359
00:20:56,750 --> 00:20:58,790
‫Quindi ce l'ho, ID tutto

360
00:20:58,790 --> 00:21:02,330
‫maiuscolo, ma poi qui nel controller ho la D in minuscolo.

361
00:21:02,330 --> 00:21:06,450
‫Quindi così.

362
00:21:06,450 --> 00:21:07,840
‫E quindi questo è

363
00:21:07,840 --> 00:21:10,790
‫il piccolo tipo di bug che accadono tutto il tempo ovviamente.

364
00:21:10,790 --> 00:21:12,183
‫Quindi vediamo qual è il prossimo.

365
00:21:13,210 --> 00:21:15,040
‫Oh e in realtà questa volta abbiamo capito bene.

366
00:21:15,040 --> 00:21:18,280
‫Quindi vedi che è la sessione che abbiamo appena creato.

367
00:21:18,280 --> 00:21:22,050
‫E modifica altre cose qui, ma questo non ha molta importanza

368
00:21:22,050 --> 00:21:24,290
‫per noi in questo momento.

369
00:21:24,290 --> 00:21:27,430
‫Ciò che è davvero interessante da vedere è

370
00:21:27,430 --> 00:21:29,340
‫che ora possiamo già

371
00:21:29,340 --> 00:21:32,330
‫vedere questo pagamento, o almeno questa richiesta

372
00:21:32,330 --> 00:21:35,330
‫di pagamento, diciamo nei nostri cruscotti di guida.

373
00:21:35,330 --> 00:21:37,843
‫Quindi, se andiamo lì

374
00:21:39,490 --> 00:21:44,490
‫e andiamo ai pagamenti e poi a tutti, vedrai che

375
00:21:44,540 --> 00:21:49,010
‫quest'ultimo qui in realtà è successo proprio ora.

376
00:21:49,010 --> 00:21:51,320
‫Quindi, se facciamo clic su questo, vedrai alcuni dati a riguardo.

377
00:21:51,320 --> 00:21:56,320
‫Quindi vedi ad esempio che si tratta in realtà

378
00:21:56,630 --> 00:21:59,130
‫del Sea Explorer Tour.

379
00:21:59,130 --> 00:22:00,960
‫Hai anche il prezzo, hai anche l'immagine.

380
00:22:00,960 --> 00:22:03,983
‫Probabilmente anche alcuni dati sull'utente.

381
00:22:04,920 --> 00:22:07,800
‫E in realtà no, non proprio.

382
00:22:07,800 --> 00:22:10,530
‫Ma ciò che conta qui è che dice incompleto.

383
00:22:10,530 --> 00:22:14,400
‫E questo perché abbiamo creato solo la sessione

384
00:22:14,400 --> 00:22:17,160
‫di checkout sul server.

385
00:22:17,160 --> 00:22:18,310
‫E quindi ci

386
00:22:18,310 --> 00:22:20,440
‫manca il secondo passaggio in cui poi addebitiamo

387
00:22:20,440 --> 00:22:22,750
‫effettivamente la carta di credito dal lato del cliente.

388
00:22:22,750 --> 00:22:24,450
‫Quindi, visto che ci

389
00:22:24,450 --> 00:22:26,210
‫manca, facciamolo nel prossimo video.

