Created
August 21, 2019 22:53
-
-
Save jgresham/39827349f47ef2bf2b550c6c68e898cc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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