2016-06-28 117 views
1

我在网站上使用Stripe/Checkout以接受付款。条纹是相当简单的用这种方式,因为他们给下面的脚本在网页中嵌入:在Stripe/Checkout中预填充电子邮件地址

<form id="monthly" action="/subscribe" method="POST"> 
    <script 
    src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
    data-key="pk_test_xxxxxxxxx" 
    data-image="http://mywebsite.com/assets/img/logo_raw.png" 
    data-name="My Website" 
    data-description="Monthly Subscription" 
    data-amount="6900" 
    data-email="[email protected]" 
    data-allow-remember-me=false 
    data-label="Subscribe" > 
    </script> 
</form> 

我希望能够做的是预先填充的电子邮件地址值(数据电子邮件= “[email protected]”)与我的custom.js jQuery脚本中的变量相关联。我精通jQuery,但我可以用jQuery修改这个嵌入式脚本吗?

回答

5

您需要使用custom integration,做这样的事情:

<script src="https://checkout.stripe.com/checkout.js"></script> 

<button id="customButton">Purchase</button> 

<script> 
    var email = "[email protected]"; // or use jQuery to dynamically populate the variable 

    var handler = StripeCheckout.configure({ 
    key: 'pk_test_...', 
    image: 'https://stripe.com/img/documentation/checkout/marketplace.png', 
    locale: 'auto', 
    token: function(token) { 
     // You can access the token ID with `token.id`. 
     // Get the token ID to your server-side code for use. 
    } 
    }); 

    $('#customButton').on('click', function(e) { 
    // Open Checkout with further options: 
    handler.open({ 
     name: 'Stripe.com', 
     description: '2 widgets', 
     amount: 2000, 
     email: email 
    }); 
    e.preventDefault(); 
    }); 

    // Close Checkout on page navigation: 
    $(window).on('popstate', function() { 
    handler.close(); 
    }); 
</script> 
+0

完美!谢谢。我甚至没有看到定制集成。 – Joel

+0

我现在遇到的问题是使用自定义集成的复杂性。检出设置很简单:我需要做的只是在表单的“操作”部分提供回调。它看起来像自定义脚本,我需要做更多的工作服务器端。 – Joel

+1

使用简单与定制集成不应该改变任何服务器端。自定义集成仅允许您使用JavaScript调用Checkout而不是使用HTML标记,并允许您定义自己的回调以根据所得令牌执行所需操作。 – Ywain

相关问题