Programmieren & Softwareentwicklung

Wenn Du nicht nur Anwender sein willst, sondern auch aktiv programmierst oder mit dem Gedanken spielst, dann warten hier die passenden Fragen und Antworten auf Dich.

26.814 Beiträge

Ask Me Anything: Themenspecials

Debugging javascript?

Ich verzweifle gerade an einer Fehlermeldung

Ich programmiere gerade einen Bot für Discord mit discord.js und ich verstehe sein problem nicht

```js

Interaktion gestartet: 1309218658412793867

Interaktion empfangen: 1309218658412793867

Befehl wird ausgeführt: buch

Interaktion gestartet: 1309218658412793867

Fehler beim Anzeigen des Buches: DiscordAPIError[10062]: Unknown interaction

  at handleErrors (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:727:13)

  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

  at async BurstHandler.runRequest (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:831:23)

  at async _REST.request (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:1272:22)

  at async ChatInputCommandInteraction.deferReply (/home/discordbot/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:72:5)

  at async Object.execute (/home/discordbot/commands/buch.js:61:13)

  at async Object.execute (/home/discordbot/events/interactionCreate.js:23:13) {

 requestBody: { files: undefined, json: { type: 5, data: [Object] } },

 rawError: { message: 'Unknown interaction', code: 10062 },

 code: 10062,

 status: 404,

 method: 'POST',

 url: 'https://discord.com/api/v10/interactions/1309218658412793867/aW50ZXJhY3Rpb246MTMwOTIxODY1ODQxMjc5Mzg2NzpoUm9SNlZneThqd05KVTAwRkFVSHVYUXI1S2o3OEk1UFpKOHJKdThJa3FBVFdNUjM2UDdCSG42ckgyV3hLelFlcEcxTTA2aEEwMGZic0k0VTF1MEhNSm01QXh3b1lDNkViR2Y0eWJSNlNvUWNaWG4xemZhYXJUMGxRSFRIRjd4WA/callback'

}

Interaktion verzögert: 1309218658412793867

Fehler beim Senden der Fehlermeldung: DiscordAPIError[40060]: Interaction has already been acknowledged.

  at handleErrors (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:727:13)

  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

  at async BurstHandler.runRequest (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:831:23)

  at async _REST.request (/home/discordbot/node_modules/@discordjs/rest/dist/index.js:1272:22)

  at async ChatInputCommandInteraction.reply (/home/discordbot/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:115:5)

  at async Object.execute (/home/discordbot/commands/buch.js:76:21)

  at async Object.execute (/home/discordbot/events/interactionCreate.js:23:13) {

 requestBody: { files: [], json: { type: 4, data: [Object] } },

 rawError: {

  message: 'Interaction has already been acknowledged.',

  code: 40060

 },

 code: 40060,

 status: 400,

 method: 'POST',

 url: 'https://discord.com/api/v10/interactions/1309218658412793867/aW50ZXJhY3Rpb246MTMwOTIxODY1ODQxMjc5Mzg2NzpoUm9SNlZneThqd05KVTAwRkFVSHVYUXI1S2o3OEk1UFpKOHJKdThJa3FBVFdNUjM2UDdCSG42ckgyV3hLelFlcEcxTTA2aEEwMGZic0k0VTF1MEhNSm01QXh3b1lDNkViR2Y0eWJSNlNvUWNaWG4xemZhYXJUMGxRSFRIRjd4WA/callback'

}

Interaktion verarbeitet: 1309218658412793867

```

Ich wäre mega dankbar wenn mir jemand beim lösen hilft

Next.js Abfrage ob Stripe Checkout Erfolgreich war?

Ich arbeite mit Next.js und Stripe und möchte sicherstellen, dass eine Bestätigungs-E-Mail und eine Datenbankaktualisierung nur nach einer erfolgreichen Zahlung durchgeführt werden. Momentan wird die E-Mail und die Datenbankaktualisierung bereits während der Erstellung der Stripe Checkout-Session verschickt, was ich ändern möchte.

https://pastebin.com/u/nextjs/1/Q8t3r8a5

Hier ist mein aktueller Ablauf:

  1. Der Benutzer füllt ein Formular aus und schickt es von Summary.tsx zusammen mit dem Betrag an meinen
  2. /api/stripe/route.ts
  3. -Endpunkt.
  4. Ich erstelle dort eine Stripe Checkout-Session und leite den Benutzer zu Stripe weiter.
  5. Die Bestätigungs-E-Mail und die Datenbankaktualisierung erfolgen sofort, ohne zu prüfen, ob die Zahlung erfolgreich war.

Ich habe einen Webhook-Endpunkt eingerichtet weil ich sonst Microfrontend Fehler bekomme aber ich habe das auch nur mit ChatGPT gemacht weil ich davon noch nie gehört habe vorher, aber ich bin mir nicht sicher, wie ich die E-Mail und den Datenbankeintrag erst nach einer erfolgreichen Zahlung versenden und durchführen kann.

ChatGPT meinte das ich dafür

checkout.session.completed

-Ereignis im Webhook verwenden sollte aber es funktioniert nicht.

Wie würde das genau in meinem Code umgesetzt werden?

Danke im vorraus, ich wäre dann einen großen schritt weiter gekommen wenn ich wüsste was man da tun muss und müsste noch paar feinheiten machen und styling verbessern.

Ab so einer Projekt Größe ist KI noch nicht optimal und zu Stripe finde ich nicht viel mit Next.js. Alles was ich gefunden habe bestand aus veralteten Dokumentationen und Tutorials.

Davor habe ich noch nicht mit Stripe gearbeitet da es immer fertige Systeme gab wobei wir jetzt eine Lösung brauchen die den Preis erst ermittelt durch Zeiträume, Zusatzoptionen, Rabattlogik im maßgeschneiderten Formular.

Ich weiß auch garnicht wie man die Stripe Email zurück bekommt und Zahlungsmethode das ich in meine Datenbank schreiben kann

 didPay : truepaymentMethod : "Visa zb." 

Ich weiß es wäre auch schlauer den Betrag nochmal in der Api Route zu berechnen ob es hinkommt da man das im Frontend manipulieren kann aber erstmal sollte es so funktionieren und es fällt bei der Business Größe sofort auf wenn der Betrag nicht zum ausgewählten Service passt ein blick auf das Dashboard genügt. Da würde man gleich eine anzeige erstatten und das würde kein Kunde machen.