【发布时间】:2024-01-04 12:21:01
【问题描述】:
我正在尝试将 Stripe 集成到我的 Ember 应用程序中,但在初始卡片收集帖子完成后我遇到了障碍。 Stripe 尝试发布表单周围的
<form {{action "charge" on="submit"}} method="POST">
<input type="hidden" name="plan" {{bind-attr value="plan.id"}} />
{{strip-button amount=plan.amount name=plan.name emailAddress=emailAddress}}
</form>
问题是我不想不想做服务器POST。我想劫持POST 的表单,并自定义发布 stripeToken 和其他数据元素以实际创建费用。
StripeButton 组件如下:
var StripeButton = Ember.Component.extend({
scriptSource: '<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"',
scriptClose: '></script>',
dataElement: function(element, value) {
return 'data-' + element + '="' + value + '"';
},
didInsertElement: function() {
this.$().append(
this.get('scriptSource') +
this.dataElement('key', 'pk_test_wat') +
this.dataElement('amount', this.get('amount')) +
this.dataElement('email', this.get('emailAddress')) +
this.dataElement('label', this.get('name') + ' Plan') +
this.dataElement('name', 'Company Name') +
this.dataElement('description', this.get('name')) +
this.get('scriptClose')
);
}
});
export default StripeButton;
如何告诉 Ember 使用我自己的操作来控制表单提交以执行我需要的自定义 ajax?
【问题讨论】:
-
正在为您设计一个很酷的解决方案,但由于某种原因,我无法拦截来自 checkout.js 的提交事件:emberjs.jsbin.com/yiguselade/5/edit。无论如何,我认为这看起来非常接近解决方案......
-
谢谢。我会继续玩它,看看我能不能让它工作。