| 20 | console.log('Failure loading StripeCheckout API, returning empty object.') |
| 21 | } else { |
| 22 | const makeNewInstance = function () { |
| 23 | var handler = StripeCheckout.configure({ |
| 24 | key: publishableKey, |
| 25 | name: 'CodeCombat', |
| 26 | email: me.get('email'), |
| 27 | image: 'https://codecombat.com/images/pages/base/logo_square_250.png', |
| 28 | token (token) { |
| 29 | handler.trigger('received-token', { token }) |
| 30 | return Backbone.Mediator.publish('stripe:received-token', { token }) |
| 31 | }, |
| 32 | locale: 'auto', |
| 33 | zipCode: true |
| 34 | }) |
| 35 | handler.id = _.uniqueId() |
| 36 | handler.openAsync = function (options) { |
| 37 | const promise = new Promise((resolve, reject) => handler.once('received-token', resolve)) |
| 38 | handler.open(options) |
| 39 | return promise |
| 40 | } |
| 41 | _.extend(handler, Backbone.Events) |
| 42 | return handler |
| 43 | } |
| 44 | module.exports = makeNewInstance() |
| 45 | module.exports.makeNewInstance = makeNewInstance |
| 46 | } |