Symfony 使用JMSPaymentBundle进行分条付款”;源参数是必需的";
我已经将JMSPaymentBundle与paypal集成在一起,一切正常! 当我试着用stripe换衣服的时候 使用github,实际上是一样的 但有一件事。我收到此错误:源参数是必需的 在捆绑的问题中,我发现我必须使用条带形式Symfony 使用JMSPaymentBundle进行分条付款”;源参数是必需的";,symfony,stripe-payments,symfony-2.8,jmspaymentpaypalbundle,Symfony,Stripe Payments,Symfony 2.8,Jmspaymentpaypalbundle,我已经将JMSPaymentBundle与paypal集成在一起,一切正常! 当我试着用stripe换衣服的时候 使用github,实际上是一样的 但有一件事。我收到此错误:源参数是必需的 在捆绑的问题中,我发现我必须使用条带形式 <form action="" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="M
<form action=""
method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="MYPUBLISHEDKEY"
data-amount="999"
data-name="Demo Site"
data-description="Widget"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto">
</script>
</form>
此表单生成一个令牌。我需要知道的是:
1-将JMSPaymentBundle使用的已发布令牌放在何处
2-我应该在表单中执行什么操作?贝宝也是这样吗?很难说这里发生了什么,但似乎缺少一些必要的文档 据我所知,它正在向表单中添加一个
标记隐藏字段:
但是,您使用的签出嵌入代码不会将令牌保存到该字段。我看不到此库中嵌入任何其他Javascript,因此您需要使用自定义条带签出集成构建自己的Javascript:
像这样的方法应该会奏效:
var handler = StripeCheckout.configure({
key: 'pk_test_6pRNASCoBOKtIshFeQd4XMUh',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
// NOTE: assuming that the field injected by the library has an ID of "token"--you'll have to check your DOM and possibly adjust this
var field = document.getElementById('token');
field.value = token.id;
// TODO: submit form and send to your backend
}
});
document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
name: 'Stripe.com',
description: '2 widgets',
zipCode: true,
amount: 2000
});
e.preventDefault();
});
// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});
很难说这里发生了什么,但似乎缺少一些必要的文档
据我所知,它正在向表单中添加一个标记隐藏字段:
但是,您使用的签出嵌入代码不会将令牌保存到该字段。我看不到此库中嵌入任何其他Javascript,因此您需要使用自定义条带签出集成构建自己的Javascript:
像这样的方法应该会奏效:
var handler = StripeCheckout.configure({
key: 'pk_test_6pRNASCoBOKtIshFeQd4XMUh',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
// NOTE: assuming that the field injected by the library has an ID of "token"--you'll have to check your DOM and possibly adjust this
var field = document.getElementById('token');
field.value = token.id;
// TODO: submit form and send to your backend
}
});
document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
name: 'Stripe.com',
description: '2 widgets',
zipCode: true,
amount: 2000
});
e.preventDefault();
});
// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});