1

我已經集成了JMSPaymentBundle,貝寶每件事情都很好! 當我試圖從這個link for JMS 和從github使用ruudk/PaymentStripeBundle條帶更改時,它實際上是相同的。與JMSPaymentBundle條紋支付「源參數是必需的」

但有一件事。我收到此錯誤:源參數是必需的

在束的問題,我發現我必須使用條紋狀

<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-我應該做什麼樣的動作?這與PayPal相同嗎?

回答

0

很難說這裏發生了什麼,但似乎https://github.com/ruudk/PaymentStripeBundle/缺少一些必要的文檔。

從我可以告訴它添加一個token隱藏字段的形式: https://github.com/ruudk/PaymentStripeBundle/blob/master/src/Form/CheckoutType.php#L12

但是,你正在使用不會保存令牌那場結帳嵌入代碼。我沒有看到任何額外的JavaScript嵌入在這個庫中,所以您需要使用自定義條紋Checkout整合來構建自己:

https://stripe.com/docs/checkout#integration-custom

像這樣的東西應該工作:

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(); 
});