14

セットアップは次のとおりです。

クライアント用のサイトをセットアップしました。顧客:

  1. サイトにアクセスします
  2. 記録用の基本情報を入力します
  3. [今すぐ購入] ボタンから PayPal に進む
  4. PayPal経由で支払いを行います
  5. サイトに戻る

私が知りたいのは、すべてのトランザクションのリストを取得する方法です。私は PayPal のログイン情報と API のユーザー名、パスワード、および署名を持っていますが、私の人生では、PHP またはjQuery/Javascript/Ajax。

誰にもアイデアはありますか?例?

前もって感謝します。

アップデート:

この疑問に対する解決策を開発することができました。コードとコメントを含む以下の私の回答を参照してください。

4

3 に答える 3

18

わかりましたので、ようやく機能するものを開発することができました。コードは、PayPal の TransactionSearch API オプションへのリンクとともに以下に掲載されています。

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/

<?php 
$info = 'USER=[API_USERNAME]'
        .'&PWD=[API_PASSWORD]'
        .'&SIGNATURE=[API_SIGNATURE]'
        .'&METHOD=TransactionSearch'
        .'&TRANSACTIONCLASS=RECEIVED'
        .'&STARTDATE=2013-01-08T05:38:48Z'
        .'&ENDDATE=2013-07-14T05:38:48Z'
        .'&VERSION=94';

$curl = curl_init('https://api-3t.paypal.com/nvp');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS,  $info);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);

$result = curl_exec($curl);

# Bust the string up into an array by the ampersand (&)
# You could also use parse_str(), but it would most likely limit out
$result = explode("&", $result);

# Loop through the new array and further bust up each element by the equal sign (=)
# and then create a new array with the left side of the equal sign as the key and the right side of the equal sign as the value
foreach($result as $value){
    $value = explode("=", $value);
    $temp[$value[0]] = $value[1];
}

# At the time of writing this code, there were 11 different types of responses that were returned for each record
# There may only be 10 records returned, but there will be 110 keys in our array which contain all the different pieces of information for each record
# Now create a 2 dimensional array with all the information for each record together
for($i=0; $i<count($temp)/11; $i++){
    $returned_array[$i] = array(
        "timestamp"         =>    urldecode($temp["L_TIMESTAMP".$i]),
        "timezone"          =>    urldecode($temp["L_TIMEZONE".$i]),
        "type"              =>    urldecode($temp["L_TYPE".$i]),
        "email"             =>    urldecode($temp["L_EMAIL".$i]),
        "name"              =>    urldecode($temp["L_NAME".$i]),
        "transaction_id"    =>    urldecode($temp["L_TRANSACTIONID".$i]),
        "status"            =>    urldecode($temp["L_STATUS".$i]),
        "amt"               =>    urldecode($temp["L_AMT".$i]),
        "currency_code"     =>    urldecode($temp["L_CURRENCYCODE".$i]),
        "fee_amount"        =>    urldecode($temp["L_FEEAMT".$i]),
        "net_amount"        =>    urldecode($temp["L_NETAMT".$i]));
}
?>

また、特定のトランザクションの詳細を取得するために、この気の利いた小さなシンプルなスクリプトを思い付きました。

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/GetTransactionDetails_API_Operation_NVP/

<?php 
$info =  'USER=[API_USERNAME]'
        .'&PWD=[API_PASSWORD]'
        .'&SIGNATURE=[API_SIGNATURE]'
        .'&VERSION=94'
        .'&METHOD=GetTransactionDetails'
        .'&TRANSACTIONID=[TRANSACTION_ID]'
        .'&STARTDATE=2013-07-08T05:38:48Z'
        .'&ENDDATE=2013-07-12T05:38:48Z';

$curl = curl_init('https://api-3t.paypal.com/nvp');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS,  $info);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);

$result = curl_exec($curl);

parse_str($result, $result);

foreach($result as $key => $value){
    echo $key.' => '.$value."<BR>";
}
?>
于 2013-07-12T19:11:41.450 に答える
0
  <script
    data-env="sandbox"
    data-tax="0.00"
    data-shipping="0.00"
    data-currency="USD"
    data-amount="0.00"
    data-quantity="0"
    data-name="No Item Selected"
    data-button="buynow" src="https://www.paypalobjects.com/js/external/paypal-button.min.js?merchant=ben4xfer@gmail.com" async="async"></script>

これは、ボタンがクリックされたときにトランザクションを行うために、paypal API に接続する html 要素です。data-buttonsrc、またはasyncプロパティを変更しないでください。data-envテストが終了したら、ノードを完全に取り外します (data-envノードは、テスト中に実際の充電が行われないようにします)。名前に従って、他のすべてのプロパティを変更data-nameします (たとえば、販売している製品の名前に変更します)。他の html 要素と同じように要素を挿入します (例: <p>)。

于 2014-12-29T22:40:25.873 に答える