2011-09-12 9 views
4

私は自分のページのpaypal add to cartボタンを統合しようとしています。 paypalごとに追加するとフォームが正常に動作しているようです。しかし、ajaxを使用してフォームをシリアライズして送信すると、フォームに302エラーが表示され、Divに入力されることはありません。Paypal「カートに入れる」ページを離れることなく

技術的には、ページをリロードしたり、誰かが「カートに追加」ボタンをクリックしたときに新しいページをリダイレクトしたり開けたりすることを避けようとしています。これをAjaxで回避することができました。明らかに、リダイレクトは、リダイレクトされたページをポストしたりロードしたりすることができないため、その可能性を排除しますか?

すべてのポインタがあります。ここで

は私のコードです:

Javascriptを:

$(document).ready(function(){ 
    $(".addToCart").click(function(){ 
     var ev = arguments[0] || window.event, 
     origEl = ev.target || ev.srcElement; 
     var cartForm = origEl.name; 
     var formData = $(cartForm).serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "https://www.paypal.com/cgi-bin/webscr", 
      cache: false, 
      data: formData, 
      success: onSuccess, 
      error: onError 
     }); 
     return false; 
    }); 
}); 

HTML:

<a class="addToCart" cartNumber="#paypal<?PHP echo $counter; ?>"> 
    <img name="#paypal<?PHP echo $counter; ?>" src="images/butNowButton.jpg" cartNumber="#paypal<?PHP echo $counter; ?>" border="0" style="text-decoration:none;" /> 
</a> 
<form name="paypal<?PHP echo $counter; ?>" id="paypal<?PHP echo $counter; ?>" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="cmd" value="_cart"> 
    <input type="hidden" name="business" value="removed for security"> 
    <input type="hidden" name="lc" value="US"> 
    <input type="hidden" name="item_name" value="<?PHP echo $itemName; ?>"> 
    <input type="hidden" name="item_number" value="<?PHP echo $Row['id']; ?>"> 
    <input type="hidden" name="amount" value="<?PHP echo $amount; ?>"> 
    <input type="hidden" name="currency_code" value="USD"> 
    <input type="hidden" name="button_subtype" value="products"> 
    <input type="hidden" name="no_note" value="0"> 
    <input type="hidden" name="tax_rate" value="0.000"> 
    <input type="hidden" name="shipping" value="0.00"> 
    <input type="hidden" name="add" value="1"> 
    <input type="hidden" name="bn" value="PP-hopCartBF:btn_cart_LG.gif:NonHostedGuest"> 
</form> 

おかげで、

シルバータイガー

+0

302(技術的にはエラーとは言えません)を取得する理由がわかりません。しかし、代わりに、https://minicart.paypal-labs.com/でPayPal Mini Cartを見てください。これはあなたのニーズに合っていますか? – Robert

+0

それを信じていても...あなたが返信する前に見つけたので、私はそれを使用することができました。それはうまく動作:)私はPHPで複数の項目を追加する方法を見つける必要がありますが(今は複数の項目を選択し、それらのカートに追加します)....まだそれのために。 – Silvertiger

答えて

0

私は追加トンのための個々のボタンを持っています複数のアイテムを追加するには、このプロセスが必要です。

"upload = '1'"メソッドを使用してフォームを使用して複数のアイテムを送信することができますが、送信時には現在のカートアイテムを新しいリストに上書きします... 1つの「カートに追加」ボタンで入力した他のアイテムは失われます。

誰もこれについて何か経験がありましたか?私はpaypalがAPIを持っていると思っていましたが、そのようなものを見つけることができませんでした。

1

ショッピングカートAPIのadd="1"メソッドを使用して、複数のアイテムを送信することができます。このように、提出する商品ごとにitem_nameitem_numberamountの変数を含めるだけで済みます。

<!-- item 1 --> 
<input type="hidden" name="item_name_1" value="...."> 
<input type="hidden" name="item_number_1" value="...."> 
<input type="hidden" name="amount_1" value="...."> 
<!-- item 2 --> 
<input type="hidden" name="item_name_2" value="...."> 
<input type="hidden" name="item_number_2" value="...."> 
<input type="hidden" name="amount_2" value="...."> 
<!-- item x --> 
<input type="hidden" name="item_name_x" value="...."> 
<input type="hidden" name="item_number_x" value="...."> 
<input type="hidden" name="amount_x" value="...."> 

このAPIの方法と使用可能な変数の詳細についてはHTML Variables for PayPal Payments Standardを確認してください。

関連する問題