今日、通常はデジタル商品のエクスプレス支払い用のペイパル ライト ボックスをポップアップ表示するリンクが機能しなくなっていることに気付きました。リンクは 2012/11/21 と同じくらい最近機能していました。問題が古いコード (以前は機能していた) を含むサーバーに存在することを確認したので、これは私が変更したものではないと思います。むしろ、paypal が js ファイルで変更したものです。
私が使用するコードは、まさにペイパル ウィザードによって生成されたものです。
<!-- INFO: The post URL "checkout.java" is invoked when clicked on "Pay with PayPal" button.-->
<form action='checkout.java' METHOD='POST'>
<input type='image' name='paypal_submit' id='paypal_submit' src='https://www.paypal.com/en_US/i/btn/btn_dg_pay_w_paypal.gif' border='0' align='top' alt='Pay with PayPal'/>
</form>
....
<!-- Add Digital goods in-context experience. Ensure that this script is added before the closing of html body tag -->
<script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script>
<script>
var dg = new PAYPAL.apps.DGFlow(
{
trigger: 'paypal_submit',
expType: 'instant'
//PayPal will decide the experience type for the buyer based on his/her 'Remember me on your computer' option.
});
</script>
まず、ページが読み込まれると、「nameOnButton」という名前の画像にノイズがあるように見えます (「画像」には、いくつかの空のボックスを持つテキスト「su yi」が含まれています)。私が生成するHTMLで。Web 上のさまざまな例にも、この偽の画像があります。HTML は次のようになります。
<form action="/pay/dpSetCheckout/" method="GET" target="PPDGFrame">
<input type="hidden" name="express">
<input type="hidden" name="trackingNumber" value="UNg0000306">
<span class="nameOnButton"><a href="javascript:"><img src="https://www.paypal.com/webapps/checkout/nameOnButton.gif"></a><br><input type="image" name="paypal_submit" id="paypal_submit" src="https://www.paypal.com/en_US/i/btn/btn_dg_pay_w_paypal.gif" border="0" align="top" alt="Pay with PayPal"></span>
</form>
...
<script>
$(document).ready(function(){
var dg = new PAYPAL.apps.DGFlow({
trigger: 'paypal_submit',
expType: 'instant'
//PayPal will decide the experience type for the buyer based on his/her 'Remember me on your computer' option.
});
});
</script>
「paypal で支払う」ボタンをクリックすると、画面が「灰色に変わります」が、paypal ポップアップは表示されません。約 5 秒後、「X-Frame-Options によって表示が禁止されているため、ドキュメントの表示を拒否しました」というエラー メッセージが表示されます。おそらく、ライトボックスが作成されていないためです。これはバックエンド/構成の問題ではないと思います。新しいタブで「paypal で支払う」リンクを開くと問題なく開くからです。
どこからデバッグを開始すればよいかよくわかりません (javascript エラー メッセージがないことを確認してください)。