2012-07-24 12 views
11

私は自分のサイトにpaypal IPNを実装しましたが、私は 作業プロセスの途中です。今、私は現在、私は唯一のPaypal IPNが複数のカスタム変数を処理する

<input type="hidden" name="custom" value="<?php echo $user_id; ?>"> 

だから私は名前を「カスタム」を持つ変数が許可されている知っているこのいずれかを使用していたPP形 で1つの以上のカスタム変数を使用したいです。 より多くの変数を渡すことができるかどうかを知りたいので、その基準に基づいて支払いをフィルタリングできます。

<input type="hidden" name="shipping_cost" value="<?php echo $cost; ?>"> 

または他の目的のために:のための場合 だから例の出荷は、私は、このような変数「shipping_cost」に設定以上の$ 0.00。これは許可されていますか?または、paypalには既に使用可能な変数 の定義済みリストがありますか?私は実際にこのタイプの問題を解決したいと思っています。常にの支払いが処理できるのです。 ありがとうございます。

答えて

4

私は(そして他の多くの人が想像しているように)この問題に直面しているので、私がやってきた解決策をいくつか共有すると思いました。

This one PayPalコミュニティで提起された、私は実際にこれを試していないレコードのための99バールを促進するためのキーと値のペアの実装を提供するように見えるオプション変数の使用を提案します。

私が好む最も一般的に受け入れられる解決方法は、すべてのデータをDBレコードに追加し、その後カスタムIDを使用してレコードIDを保存することです(後でIPNなどを介して)データを取得します。

3

PayPalはどのフィールドを使用するかを定義しますhere。他のフィールドは無視されます。

「出荷」フィールドが定義されており、PayPalはそのフィールドの値を使用して送料の追加料金を請求します。また、IPNまたはPDTデータからその値を取得することもできます。

他の値を渡す必要がある場合は、「カスタム」フィールドにクエリ文字列スタイル(var1 = value1 & var2 = value2 ...)でフォーマットされた文字列を渡すことを検討できます。このフィールドで許可される最大文字数は256であることに注意してください。次に、IPNまたはPDT応答を受け取ったときにこれを解析します。

カスタムフィールドのサイズが大きすぎる場合、別のanswer hereで説明した内容を試すことができます。

+0

本当に残念です。私は私の意図を達成するためにpaypal ipの他の許可された変数と遊ばなければならなかった。私は製品名と説明を使用しました。あなたの答えに感謝します。 – inrob

+1

"custom2"だけでは大丈夫ですか?私はいくつかのレガシーコードを通過しているし、 "custom"と "custom2"のフォームをPaypalに送信されるフィールドとして見た。 – CMCDragonkai

8

この方法、あなたはより多くのパラメータ

<input type="hidden" name="custom" value="variable1=234&var2=summa&etc=xyz"/> 

あなたのpaypalフォームに上記のいずれかを使用

を渡すことができます。

と次のコードで処理してください。

parse_str($_POST['custom'],$_MYVAR); 

echo $_MYVAR['variable1']; 
echo $_MYVAR['var2']; 
echo $_MYVAR['etc']; 

私はこれがあなたに役立つことを願っています。

+0

ニースメソッドありがとう。 – inrob

+0

カスタムデータをJSON( 'json_encode($ data)'を使ってPHPデータ型から変換したもの)として送信し、 'json_decode($ _ POST ['custom'])'を使って取得することもできます。 –

+0

これはすばらしい解決策です。ありがとう+1 –

関連する問題