From 87fc33dfa162554b540dfb640ba1c1f66f9132d2 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 13 Oct 2022 23:32:21 -0700 Subject: card payments --- src/routes/pay/+page.server.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/routes/pay/+page.server.js (limited to 'src/routes/pay/+page.server.js') diff --git a/src/routes/pay/+page.server.js b/src/routes/pay/+page.server.js new file mode 100644 index 00000000..1393eecc --- /dev/null +++ b/src/routes/pay/+page.server.js @@ -0,0 +1,37 @@ +let stripe = 'https://api.stripe.com/v1'; + +export const actions = { + default: async ({ request }) => { + let form = await request.formData(); + + let headers = new Headers(); + headers.set( + 'Authorization', + 'Basic ' + new Buffer('sk_test_mBv5bAeAhiYSDYFZJNsDwjht:').toString('base64') + ); + + let body = new URLSearchParams({ + 'card[number]': form.get('number'), + 'card[exp_month]': form.get('expiry').slice(0, 2), + 'card[exp_year]': form.get('expiry').slice(-2), + 'card[cvc]': form.get('cvc') + }); + + let method = 'POST'; + + let { id: source } = await fetch(`${stripe}/tokens`, { body, headers, method }).then((r) => + r.json() + ); + + body = new URLSearchParams({ + amount: 600, + currency: 'cad', + source, + description: 'launch ticket' + }); + + let r = await fetch(`${stripe}/charges`, { body, headers, method }).then((r) => r.json()); + + console.log(r); + } +}; -- cgit v1.2.3