2014-12-24 2 views
0

Я пытаюсь интегрировать полосу в мое приложение Ember, и я столкнулся с проблемой, когда начальный почтовый сбор заканчивается. Stripe пытается опубликовать форму, окружающуюСообщение об интеграции Emberjs Stripe с stripeToken

<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 мне нужно?

+0

Придумал для вас отличное решение, но по какой-то причине я не смог перехватить событие отправки из checkout.js: http://emberjs.jsbin.com/yiguselade/5/edit. В любом случае, я думаю, что это выглядит довольно близко к решению ... – mpowered

+0

Спасибо за это. Я продолжу играть с ним, чтобы посмотреть, смогу ли я заставить его работать. – williamsbdev

ответ

1

Вы можете проверить checkout.js пользовательской интеграции здесь: https://stripe.com/docs/checkout#integration-custom

Это позволит вам большую гибкость в создании вашего решения вместо того, чтобы пытаться взломать простую интеграцию.

+0

Спасибо за рекомендацию. Мы хотели бы держаться подальше от «сбора» информации СС. Использование формы полосы и не реализация нашего собственного предпочтительного метода на данный момент. Благодаря! – williamsbdev

+1

Реализация должна выглядеть одинаково, она просто позволяет вам использовать пользовательскую кнопку и предоставлять обратный вызов 'token' для завершения обработчика' StripeCheckout'. Сама форма должна быть неизменной. – mpowered

Смежные вопросы