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

그러나 해당 필드에 토큰을 저장하지 않습니다 사용하고있는 체크 아웃 소스 코드. 나는 어떤 추가적인 자바 스크립트가이 라이브러리에 포함 된 표시되지 않습니다, 그래서 당신은 사용자 정의 스트라이프 체크 아웃 통합을 사용하여 자신을 구축해야합니다 :

이 같은

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