0

サイトで作業しており、チェックアウト時に PayPal エクスプレス チェックアウト ボタンを表示するカスタム注文フォームがあります。このボタンは、FireFox ではセール価格と注文番号とともに PayPal に正しくリダイレ​​クトされますが、Safari と Chrome ではボタンをクリックしても何も起こりません。Chrome デベロッパー ツールを使用すると、ボタンをクリックすると GET リクエストが処理されていることがわかりますが、すぐにキャンセルされます。フォームのターゲットを target="_self" と target="paypal" に変更しようとしましたが、役に立ちませんでした。PayPal エクスプレス チェックアウト ボタンと PayPal へのリダイレクトのコードは次のとおりです。

//////payment handlers
if ($payprovider == 'paypal') {
////hand off to paypal
header("Location: order-inspection.php?process=paypal&amount=".$row12['customer_payment_amount']."&items=".$row12['COUNT(session)']."&order=".$row12['ordernumber']." ");   
} elseif ($payprovider == 'googlewallet') {
////hand off to google
header("Location: order-inspection.php?process=googlewallet&amount=".$row12['customer_payment_amount']."&items=".$row12['COUNT(session)']."&order=".$row12['ordernumber']." ");
} elseif ($payprovider == 'wepay') {
////hand off to google
header("Location: order-inspection.php?do=wepay&amount=".$row12['customer_payment_amount']."&items=".$row12['COUNT(session)']."&order=".$row12['ordernumber']." ");
} elseif ($payprovider == 'callin') {
////hand off to google
header("Location: order-inspection.php?do=callin&amount=".$row12['customer_payment_amount']."&order=".$row12['ordernumber']."&id=".$_SESSION['CURINSPECID']." ");
} else {
////send to step one because inspectid dropped
header("Location: order-inspection.php?do=step1&error=sessiondropped");}

} elseif (isset($_GET['process']) && $_GET['process'] == 'paypal') {

////vars needed
$orderamount = cleanget('amount');
$orderitems = cleanget('items');
$ordernumberid = cleanget('order');
////update payment provider
$SQL1 = " UPDATE inspections_payment SET customer_payment_status='Dropped at Paypal',payment_provider = 'paypal' WHERE ordernumber = '".$ordernumberid."'";
$result1 = mysql_query($SQL1,$cid)or die(mysql_error());
////print the image to let customer know they are being redirected
print '<center><br /><br /><br /><br /><br /><strong>Sending you to PayPal for payment processing.</strong><br />Please wait.... </center>';
////data to send to paypal
print '<form name="payment" action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="team@lemonsquad.com">
<input type="hidden" name="cbt" value="Return to site.">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="bn" value="IC_Sample">
<input type="hidden" name="on0" value="Order Number">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="os0" value="'.$ordernumberid.'">
<input type="hidden" name="custom" value="'.$ordernumberid.'">          
<input type="hidden" name="item_name" value="Lemon Squad - '.$orderitems.' Inspections Ordered" />
<input type="hidden" name="amount" value="'.$orderamount.'" />
<input type="hidden" name="return" value="http://www.lemonsquad.com/thankq.php">
<input type=hidden name="notify_url" value="http://www.lemonsquad.com/checking.php">
<input type="hidden" name="cancel_return" value="http://www.lemonsquad.com/order-inspection.php"/>
<input type="hidden" name="cpp_header_image" value="http://www.lemonsquad.com/images/paypalbanner.jpg"/>
</form>
<script type="text/javascript">
document.payment.submit();
</script>';

}




print '<form method="get" action="order-inspection.php" name="orderform1" id="orderform1" /><input type="hidden" name="process" value="final" /><input type="hidden" name="lsid" value="'.session_id().'" /><input type="hidden" name="paypro" value="paypal" />';
print '<a href="#" onClick="recordOutboundLink(this, \'Outbound Links\', \'paypal.com\');document[\'orderform1\'].submit();return false;"><img src="/images/paypal_checkout.png" /></a>';
print '<br /><br /></form>';
4

1 に答える 1

0

手っ取り早い修正かもしれませんが、「10 秒以内にリダイレクトされない場合は、ここをクリックしてください」のような送信ボタンをフォームに追加してみてはいかがでしょうか。

于 2013-04-16T12:58:53.740 に答える