2016-08-16 15 views
1

PayPalイン・コンテキスト・エクスプレスチェックアウトを使用しています。PayPalインコンテキスト・チェックアウトClickイベント

paypal.checkout.setup("my_app.domain.co.uk", { 
    locale: 'en_GB', 
    environment: 'production', 
    button: 'PayPalSubmit' 
}); 

そしてHTML::ここで私は、現時点では持っているものである

<form id="PayPalForm" action="/lib/paypal/paypal_ec_redirect.php" method="POST"> 
    <input type="hidden" name="currencyCodeType" value="GBP" /> 
    <input type="hidden" name="paymentType" value="Sale" /> 
    <input type="hidden" name="PAYMENTREQUEST_0_PAYMENTACTION" value="Sale" /> 
    <input type="hidden" name="L_PAYMENTREQUEST_0_NAME0" value="Test" /> 
    <input type="hidden" name="PAYMENTREQUEST_0_DESC" value="Test" /> 
    <input type="hidden" name="L_PAYMENTREQUEST_0_QTY0" value="1" /> 
    <input type="hidden" name="PAYMENTREQUEST_0_ITEMAMT" value="1" /> 
    <input type="hidden" name="PAYMENTREQUEST_0_AMT" value="1"> 
    <input type="hidden" name="NOSHIPPING" value="1"> 
    <button type="submit" id="PayPalSubmit" class="jfk-button-action"> 
     Pay with PayPal 
    </button> 
</form> 
<script src="//www.paypalobjects.com/api/checkout.js" async></script> 

これは、現時点では動作しますが、私は、ユーザーは有料をクリックしたときに何かを変更するには、コールバックを追加しますボタンを押すと、PayPalポップアップウィンドウが開きます。私はこれを試してみました:

paypal.checkout.setup("my_app.domain.co.uk", { 
    locale: 'en_GB', 
    environment: 'production', 
    button: 'PayPalSubmit', 
    click: function() { 
     paypal.checkout.initXO(); 
     $('#popup').html('Processing your booking...'); 
    } 
}); 

これは、しかし、ポップアップウィンドウが開き、PayPalのローディングgif形式は、ちょうど約ウィンドウのタイトルとそこにハングアップするFirefoxとIEには、Google Chrome上で正常に動作します:空白。誰が何が起こっているのか分かっていますか?

答えて

0

私は実際にPayPal-In-Context-Workflowを使用するとは思わない。 このスクリプトでは、フォームが送信され、 "/lib/paypal/paypal_ec_redirect.php"に到達します。 コンテキスト内ワークフローでは、まず支払いをセットアップしてトークンを取得します。 その後、JSは "paypal.checkout.startFlow(token)"でフローを開始する必要があります。 ここに私が使用するコード例があります。 "event.preventDefault();"フォームurlを実行しません。ajaxはトークンを取得します。私

については

 window.paypalCheckoutReady = function() { 
     //alert('paypalCheckoutReady'); 
     paypal.checkout.setup('@Model.PayPalMerchantId', { 
      environment: '@Model.PayPalEnvironment', 
      click: function (event) { 
       //alert('paypalCheckoutClick'); 
       $('#checkout').attr("disabled", "disabled"); 
       event.preventDefault(); 
       paypal.checkout.initXO(); 
       $.support.cor = true; 
       $.ajax({ 
        url: '@Url.Action("Checkout","shop")', 
        data: $('#payment-form').serialize(), 
        type: 'POST', 
        async: false, 
        crossDomain: true, 
        success: function (token) { 
         //alert('checkout success: ' + token); 
         //var url = paypal.checkout.urlPrefix + token; 
         paypal.checkout.startFlow(token); 
        }, 
        error: function (responseData, textStatus, errorThrown) { 
         //alert('checkout error: ' + textStatus); 
         paypal.checkout.closeFlow(); 
        } 
       }); 
      }, 
      condition: function() { 
       var ispaypal = $('input[name=paymentmethod]:checked', '#payment-form').val() == 'paypal'; 
       //alert(ispaypal); 
       return ispaypal; 
      }, 
      button: ['checkout'], 
     }); 
    }