Skip to content

Instantly share code, notes, and snippets.

View Joe8Bit's full-sized avatar
👋
@banked is hiring! Reach out!

Joe Pettersson Joe8Bit

👋
@banked is hiring! Reach out!
View GitHub Profile
makePaymentRequest({ provider, name, email, amount })
.then(response => {
switch (provider) {
case "banked":
window.location.href = response.url
break
case "stripe":
this.stripe.redirectToCheckout({ sessionId: response.sessionId })
break
}
function createStripePaymentRequest(req, res) {
const cors = require('cors')({
origin: true,
});
return cors(req, res, () => {
const functions = require('firebase-functions');
const stripe = require('stripe')(functions.config().stripe.secret_key);
const recordPayment = require('../shared/recordPayment');
const functions = require('firebase-functions');
function createBankedPaymentRequest(req, res) {
const cors = require('cors')({
origin: true,
});
return cors(req, res, () => {
const payerName = req.body.payerName;
const payerEmail = req.body.payerEmail;
@Joe8Bit
Joe8Bit / worker.js
Created April 20, 2020 13:33
Cloudflare worker
function getCookie(request, name) {
let result = null;
let cookieString = request.headers.get('Cookie');
if (cookieString) {
let cookies = cookieString.split(';')
cookies.forEach(cookie => {
let cookieName = cookie.split('=')[0].trim()
if (cookieName === name) {
let cookieVal = cookie.split('=')[1]
result = cookieVal
@Joe8Bit
Joe8Bit / web-component.html
Created April 20, 2020 13:31
Web components!
<head>
<title>Your Application</title>
</head>
<body>
<script src="https://js.banked.com/v1" data-api-key="YOUR_CLIENT_KEY" type="text/javascript"></script>
<banked-provider-list payment-id="PAYMENT_ID"></banked-provider-list>
<banked-pay-button></banked-pay-button>
</body>
@Joe8Bit
Joe8Bit / bad.js
Created April 20, 2020 13:31
Bad implementation
document.getElementByID('banked-provider-list').addEventListener('banked-provider-set', function (e) {
window.location.replace(e.detail.redirectUrl);
});
@Joe8Bit
Joe8Bit / sourcing-auth-url.js
Created April 20, 2020 13:30
Source auth URL
document.getElementByID('banked-provider-list').addEventListener('banked-provider-set', function (e) {
console.log(e.detail.redirectUrl); // e.g. https://bank.com/authorise/09234098-2983-029340/
});
@Joe8Bit
Joe8Bit / initial.html
Created April 20, 2020 13:29
Initial banked.js version
<head>
<title>Your Application</title>
</head>
<body>
<script src="https://js.banked.com/v1" data-api-key="YOUR_CLIENT_KEY" type="text/javascript"></script>
<div id="banked-provider-list" data-payment-id="SOME_PAYMENT_ID"></div>
</body>
@Joe8Bit
Joe8Bit / api.js
Last active March 7, 2020 15:09
Example store - Full Banked request
const hydrateRequest = (body) => {
return {
reference: 'Banked Demo',
success_url: `${process.env.BASE_URL}/cart/success`,
error_url: `${process.env.BASE_URL}/cart/error`,
line_items: body.map((item) => {
return {
name: item.name,
amount: item.amount * 100, // Amount is sent in whole pennies/cents
currency: 'GBP',
@Joe8Bit
Joe8Bit / api.js
Last active March 7, 2020 15:07
Example store - Banked API request
const Banked = require('@banked/node')
// -- snip
const banked = new Banked({
api_key: process.env.BANKED_API_KEY,
secret_key: process.env.BANKED_API_SECRET
})
// -- snip
app.post('/checkout', async function (req, res) {
try {
const bankedResponse = await banked.payments.create(req.body)