Paypal Checkoutボタンのクリックをトリガーするにはどうすればよいですか? Paypalの支払いも受け入れるクレジットカードの横にWebサイトがあり、顧客が支払う方法とPaypal Checkoutボタンを選択するためのラジオボタンを配置することにしました:
Paypal Checkoutボタン自体をクリックすると、Paypalのセキュアウィンドウが開き、残りは正常に機能します。顧客が最初のラジオボタンをクリックすると、Paypalの安全なウィンドウをもう一度開きます。つまり、Paypalチェックアウトボタンをクリックします。ボタン自体がiframeに表示されていて、そのボタンのクリックイベントをドメイン間でトリガーできない場合、どうすればよいですか?チェックアウトボタンのクリックをトリガーする方法はありますか?
HTMLコードは次のとおりです。
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>
<script type="text/javascript" src="Paypal.js">
</script>
<body>
<div>
<span style="vertical-align: 50%"><input id="rd" name="aaa" type="radio"/></span>
<div id="Paypal-button-container" style="display: inline-block"></div><hr/>
<input id="rd1" name="aaa" type="radio"/>
</div>
</body>
</html>
JavaScriptコード:
// Paypal.js
// Render the Paypal button
$(function(){
Paypal.Button.render({
// Set your environment
//TODO: Dynamically provide sandbox or production
env: 'sandbox', // sandbox | production
// Paypal Client IDs - replace with your own
// Create a Paypal app: https://developer.Paypal.com/developer/applications/create
//TODO: Dynamically provide clientID
client: {
sandbox: 'ZZZZZZ',
production: '//TODO: Provide this later'
},
// Wait for the Paypal button to be clicked
payment: function() {
// Make a client-side call to the REST api to create the payment
return Paypal.rest.payment.create(this.props.env, this.props.client, {
transactions: [
{
amount: { total: '13.10', currency: 'USD' }
}
]
});
},
// Wait for the payment to be authorized by the customer
onAuthorize: function(data, actions) {
return actions.payment.get().then(function(paymentData) {
$('#Paypal-button-container').style.display = 'none'; //hide button
//TODO: Show user payment details
//TODO: Create input hidden fields and set payerID, paymentID, etc..for later authoriza/capture
});
},
onClick: function(){
$('#rd').trigger('click');
},
}, '#Paypal-button-container');
});
編集:作業例としてこのサイトを提案しますが、これは私が必要とするものとは少し異なります https://developer.Paypal.com/demo/checkout/#/pattern/mark
これは、現在Paypalボタンでサポートされているものではありません。公式のポリシーでは、ボタン自体をクリックするだけでチェックアウトウィンドウが開きます。
私は少し遅れていると思いますが、これが私のようにこの問題に直面した人々を助けることを願っています。
Paypalのボタンの不透明度を0に設定して、独自のチェックアウトボタンの上に置くことができます。次に、ラジオボタンの値に応じて、表示を「なし」または「ブロック」に設定できます。
私の場合、スペース上の理由から完全にカスタマイズされたボタンを使用したかっただけです。最後に、マウスオーバーでoverflow:hidden divにラップされるまでPaypalボタンを隠しました。それは大丈夫に見えます-左/右のパディングのない正方形のPaypalボタンのように..
背景:Paypalの現在のエクスプレスチェックアウトのドキュメントでは、最小サイズが80pxのボタンのみがサポートされていますが、CSSで遊ぶと、デスクトップ上の実際の最小サイズは約120px幅になります。