我已经看到两个单独的用户,包括Windows 7和Firefox 34,我的Stripe初始化程序出现Stripe is not defined
错误。
我使用.setPublishableKey()
从ENV
获取密钥,如下所示:
initializer =
name: 'stripe'
initialize: ->
Stripe.setPublishableKey(ENV.STRIPE_PUBLISHABLE_KEY)
`export default initializer`
我像这样包括Stripe JS:
<html>
<head>
{{content-for 'head'}}
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
可能导致这种情况的原因是什么?我怎么能解决它?
我知道我可以在设置可发布密钥之前检查Stripe是否已定义,但这可能不足以让用户使用与Stripe相关的功能。
答案 0 :(得分:0)
Josh,似乎这是初始化ember-stripe-service
包的方式。
违规行:https://github.com/ride/ember-stripe-service/blob/master/app/initializers/stripe-service.js#L15
此评论中提到了一种解决方法:https://github.com/ride/ember-stripe-service/issues/12#issuecomment-94524196
我有你的问题,上面评论中的修复效果很好。这是我在Coffeescript中的版本
app/initializers/fake-stripe.coffee
`import config from '../config/environment'`
initialize = (container, application) ->
if (config.environment != 'test')
return
if (typeof Stripe != 'undefined')
return
window.Stripe =
setPublishableKey: ->
card: createToken: ->
StripeInitializer =
name: 'fake-stripe'
before: 'stripe'
initialize: initialize
`export {initialize}`
`export default StripeInitializer`