Ton*_*Tau 6 javascript ruby ruby-on-rails stripe-payments
我不确定如何将我的 Publishable 密钥放入我的 JavaScript 代码中。当我将可发布键的值直接放入 JavaScript 时,它工作正常。当我尝试使用环境变量时它不起作用。
配置/初始化程序/stripe.rb
Rails.configuration.stripe = {
:publishable_key => ENV['PUBLISHABLE_KEY'],
:secret_key => ENV['SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
Run Code Online (Sandbox Code Playgroud)
javascripts/charges.js.erb
Stripe.setPublishableKey(<%= Rails.configuration.stripe[:publishable_key] %>);
var stripeResponseHandler = function(status, response) {
var $form = $('#payment-form');
if (response.error) {
$form.find('.payment-errors').text(response.error.message);
$form.find('button').prop('disabled', false);
} else {
var token = response.id;
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
$form.get(0).submit();
}
};
jQuery(function($) {
$('#payment-form').submit(function(e) {
var $form = $(this);
$form.find('button').prop('disabled', true);
Stripe.createToken($form, stripeResponseHandler);
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
不完全是一个解决方案,但我喜欢 Railscast 方式(http://railscasts.com/episodes/288-billing-with-stripe)使用环境变量设置元标记,然后使用 Javascript 调用元中的值标签。您想要的位从大约 4 分 10 秒开始
<%= tag :meta, :name => "stripe-key", :content => STRIPE_PUBLIC_KEY %>
Run Code Online (Sandbox Code Playgroud)
那么JS代码是:
Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'))
Run Code Online (Sandbox Code Playgroud)
我不喜欢直接将环境变量插入 JS。
| 归档时间: |
|
| 查看次数: |
2808 次 |
| 最近记录: |