イベントを開催するウェブサイトを作成しており、ユーザー「ユーザー A」がイベントを開始できるようにしたいと考えています。ペイパル アカウント情報を入力し、価格を設定します。その後、他のユーザーはイベントに登録し、ユーザー A に直接支払うことができます。クレジット カードを処理する必要はありません。ペイパル アカウントを持っていないユーザーがクレジット カードで支払いできるようにしたいと考えています。
Paypal の Adaptive Payment は、これを達成するために使用するのに最適な API のようです。サンドボックス環境で動作させています。私の問題はこれです-ユーザーがクリックしてユーザーAのイベントに登録し、すべての情報(名前、住所、会社など)を入力します。この情報をデータベースに保持する必要があるため、これを最初に行う必要があります。次に、「PayPal で支払う」というボタンをクリックします。これによりペイキーが作成され、ユーザーは 2 つのオプションがある Paypal ログイン ページにリダイレクトされます (a. Paypal にログインする、または b. 個人情報とクレジット カード情報を再度入力する)。
ユーザーがすべての情報を再度入力する必要がないように、Paypal ページのすべてのフィールドに既に入力済みの状態にする方法を知りたいです。請求先住所が異なる場合は、テキスト ボックスのデータを削除できます。しかし、私が今まで見たすべての Web サイトでは、ユーザーが同じ情報を 2 回入力することはありませんでした。他のサイトがそうしているのを見たので、これが可能であることがわかりました。私は SetPaymentOptions API を調べましたが、それがどのように機能するかはあまり明確ではありません.Paypalにまだ知られていない場合でも、ユーザー情報を渡す必要があります.
このようなPaypalチュートリアルで提案されているように値を追加してみました
<INPUT TYPE="hidden" NAME="first_name" VALUE="John">
<INPUT TYPE="hidden" NAME="last_name" VALUE="Doe">
<INPUT TYPE="hidden" NAME="address1" VALUE="9 Elm Street">
しかし、それはうまくいきませんでした。リクエストからの Fiddler からの生データは次のとおりです。
POST https://svcs.sandbox.paypal.com/AdaptivePayments/Pay HTTP/1.1
Content-Type: text/xml;charset=utf-8
X-PAYPAL-SECURITY-USERID: scotts_XXXXXXXXX_biz_api1.live.com
X-PAYPAL-SECURITY-PASSWORD: 1344XXXXX
X-PAYPAL-SECURITY-SIGNATURE: AOLbPDojAEUdeQJ3wXagJXkxYeJDARg4IXXXXXXXXXXXXXXXXXXX
X-PAYPAL-SERVICE-VERSION: 1.1.0
X-PAYPAL-APPLICATION-ID: APP-80W2844XXXXXXXXX
X-PAYPAL-REQUEST-DATA-FORMAT: XML
X-PAYPAL-RESPONSE-DATA-FORMAT: XML
Host: svcs.sandbox.paypal.com
Content-Length: 810
Expect: 100-continue
Connection: Keep-Alive