2013-09-16 3 views
1

현재 사용자에게 청구 방법으로 스트라이프 결제 버튼을 사용하고 있습니다. 그러나이 과정은 다음과 같습니다.버튼이없는 스트라이프 결제

이메일을 받으면 이메일에 유료 버튼이 있습니다. 버튼을 누르면 버튼이 스트라이프 지불 버튼이있는 페이지를 실행합니다. 스트라이프 지불 버튼을 누르면 카드 지불이 열립니다.

다른 버튼을 누르지 않아도 사용자가 이메일 지불 버튼을 누르면 카드 지불 페이지로 곧바로 갈 수 있기를 바랍니다.

나는 https://stripe.com/docs/checkout을 사용 해왔다. stripecheckout.open을 직접 호출하면 트릭을 수행 할 수 있다고 생각하지만 자바 스크립트로이 호출을 올바르게 형식화하는 방법을 모르겠습니다.

예를 들어, 이메일 지불 버튼을 누를 때, 스트라이프 지불 버튼 내가 그냥 stripecheckout.open을 위해 그것을 다시 작성하는 방법을 모르겠어요이

res.write('<script '); 
res.write('src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"'); 
res.write('data-key="' + body[0].data_key + '"'); 
res.write('data-amount="' + body[0].data_amount +'"'); 
res.write('data-name="' + body[0].data_name + '"'); 
data_desc_string = body[0].data_description; 
data_desc_short = data_desc_string.substring(7); 
res.write('data-description="' + data_desc_short + '"'); 
res.write('data-currency="usd">'); 
res.write('</script>'); 

같이 생성됩니다.

답변

2

Checkout 문서의 Custom Buttons 섹션에서 StripeCheckout.open()으로 전화하는 방법에 대해 자세히 설명합니다.

버튼 클릭에 대한 응답 대신 페이지가로드 된 경우 (예제에서와 같이) 일단 페이지가로드되면 StripeCheckout.open()으로 전화하면됩니다.

당신이 사용하는 JS 프레임 워크에 따라 달라질 점은 정확히 무엇입니까? 예제 코드에서와 같이 jQuery를 사용하면 $(document).ready()에 바인딩 :

<script src="https://checkout.stripe.com/v2/checkout.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script> 

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

    <script> 
    $(document).ready(function(){ 
     var token = function(res){ 
     var $input = $('<input type=hidden name=stripeToken />').val(res.id); 
     $('form').append($input).submit(); 
     }; 

     StripeCheckout.open({ 
     key:   'pk_test_czwzkTp2tactuLOEOqbMTRzG', 
     address:  true, 
     amount:  5000, 
     currency: 'usd', 
     name:  'Joes Pistachios', 
     description: 'A bag of Pistachios', 
     panelLabel: 'Checkout', 
     token:  token 
     }); 

     return false; 
    }); 
    </script> 
관련 문제