Skip to content

Instantly share code, notes, and snippets.

@jgresham
Created August 21, 2019 22:53
Show Gist options
  • Save jgresham/39827349f47ef2bf2b550c6c68e898cc to your computer and use it in GitHub Desktop.
Save jgresham/39827349f47ef2bf2b550c6c68e898cc to your computer and use it in GitHub Desktop.
from flask import Flask, jsonify, request
import stripe
import threading
import time
import json
app = Flask(__name__)
stripe.api_key = '<KEY>'
@app.route('/getconnectiontoken', methods=['POST'])
def post_connection_token():
token = stripe.terminal.ConnectionToken.create()
return jsonify(token)
def _launch_flask():
app.run(debug=True, use_reloader=False, port=80, host='0.0.0.0')
def launch_api_server():
thread_ = threading.Thread(name='thread_', target=_launch_flask)
thread_.setDaemon(True)
thread_.start()
if __name__ == '__main__':
launch_api_server()
while True:
time.sleep(10)
let BACKEND_URL ='http://localhost:80/getconnectiontoken'
function fetchConnectionToken() {
// Your backend should call /v1/terminal/connection_tokens and return the JSON response from Stripe
return fetch(BACKEND_URL, { method: "POST" })
.then(response => response.json())
.then(data => {
console.log('fetchConnectionToken(): data', data)
return data.secret
});
}
function unexpectedDisconnect() {
console.log('stripe terminal: unexpectedDisconnect')
}
var terminal = StripeTerminal.create({
onFetchConnectionToken: fetchConnectionToken,
onUnexpectedReaderDisconnect: unexpectedDisconnect,
});
console.log('stripe terminal: terminal', terminal)
// Handler for a "Connect Reader" button
function connectReaderHandler() {
const config = {simulated: true};
terminal.discoverReaders(config).then(function(discoverResult) {
if (discoverResult.error) {
console.log('Failed to discover: ', discoverResult.error);
} else if (discoverResult.discoveredReaders.length === 0) {
console.log('No available readers.');
} else {
// Just select the first reader here.
var selectedReader = discoverResult.discoveredReaders[0];
console.log('selectedReader: ', selectedReader);
terminal.connectReader(selectedReader).then(function(connectResult) {
if (connectResult.error) {
console.log('Failed to connect: ', connectResult.error);
} else {
console.log('Connected to reader: ', connectResult.reader.label);
}
});
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment