2011-07-19 16 views
4

PayPal経由で複数の商品を購入するサイトで1つのフォームを設定したいと考えています。商品はPayPalアカウントで設定され、それぞれにはhosted_button_idがあります。hosted_button_idを使用してPaypalに複数の商品を1つのフォームで追加する

このフォームには、一連の説明と数量フィールドが含まれています。これらはすべて最初はゼロに設定されています。その後、顧客は各製品に対して所望の数量を追加して、単一「今すぐ購入」ボタンでフォームを送信することができます。

これはPayPalで可能ですか?私は特に「カート」の経験は望んでおらず、(PayPalに保存されているデータを使用する代わりに)商品価格を渡すことは望ましくありません。

ありがとうございました

答えて

4

最後に私はあなたがこれを行うことはできないと結論付けました。

私は、AJAXingを含めてすべてを試して、私のサイトにユーザーを保持するために隠されたiFrame経由で投稿を送信します。何も働かなかった。 PayPalは、カートを使用しているときに承認済みのショッピングワークフローを実施することに非常に熱心であるようです。

1

これは可能ですが、サーバー側のプログラミングを行う必要があります。プログラムで「暗号化されたボタン」を作成し、PayPalに送信します。

私のストアページhttps://secure.entrian.com/store/store.html - それはいくつかの情報を要求し、それをサーバに送信して暗号化されたボタンにし、それをPayPalに提出します。

$license_name$quantityは私が求めるてるフィールドであり、formgen.pyはPayPalのマニュアルに従ってOpenSSLを使用して要求を構築し、署名するサーバー側のPythonスクリプトここではJavaScriptが、次のようになります。

$paypal_form.submit(function() { 
    var response = $.ajax({ 
     type: "GET", 
     url: 'formgen.py?' + serialize({ 
      licenseName: $license_name.val(), 
      quantity: $quantity.val() 
     }), 
     async: false 
    }).responseText; 

    if (response.indexOf('PKCS7') >= 0) { 
     $encrypted.val(response); 
    } else { 
     $payment_errors.text(response).show(easing_duration); 
     return false; 
    } 

    return true; 
} 

フォームは、この(かなり単純化)のようになります。フォームがPayPalに提出される前に<input name="encrypted" ...>は、AJAXの応答が移入されることを

<form id="paypal-form" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="upload" value="1"> 
<input type="hidden" id="encrypted" name="encrypted" value=""> 
<button id="buynow" class="submit-button btn" type="submit">Buy Now</button> 
</form> 

関連する問題