【问题标题】:Emberjs Stripe integration post with stripeTokenEmberjs Stripe 与 stripeToken 的集成帖子
【发布时间】: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。无论如何,我认为这看起来非常接近解决方案......
  • 谢谢。我会继续玩它,看看我能不能让它工作。

标签: ember.js stripe-payments


【解决方案1】:

您可能想在此处查看checkout.js 自定义集成:https://stripe.com/docs/checkout#integration-custom

这将使您在创建解决方案时更加灵活,而不是试图破解简单的集成。

【讨论】:

  • 感谢您的推荐。我们希望远离“收集”CC 信息。在这一点上,使用条带形式而不是实现我们自己的形式是首选方法。谢谢!
  • 实现看起来应该相同,它只是允许您使用自定义按钮并在StripeCheckout 处理程序完成时提供token 回调。表单本身应保持不变。