aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/pay/+page.server.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/pay/+page.server.js')
-rw-r--r--src/routes/pay/+page.server.js37
1 files changed, 37 insertions, 0 deletions
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);
+ }
+};