最後に、API の理解にこれほど多くの時間を費やしたのはいつだったか思い出せないと言わざるを得ません。私はPayPalで働くのが嫌いです。それは言った...
トランザクションを出荷ソフトウェアにダウンロードするための一見単純なスクリプトを開発しています。NVP と SOAP でトランザクションをプルするスクリプトが動作しています。ただし、支払いが請求書に記載されている場合、購入したアイテムは支払いトランザクション情報に含まれません。したがって、必要なものは請求 API にあると想定しています。
私は、TransactionSearch で問題なく動作する API 資格情報を持っています。Invoicing API にはアプリ ID も必要であることがわかったので、アプリを 2 回作成しました。どうやら 2 つの PayPal 開発者サイトがあるようです?? したがって、developer.paypal.com で作成された REST アプリがあり、apps.paypal.com で「条件付きで承認された」古典的なアプリだと思います。
途方もなく組織化されていない開発者の構造とドキュメントの悲しい言い訳について発散した後だと思います... !@#$ ... 誰かが私を正しい軌道に乗せることができるかどうかを知りたいです。
私にできることは、どのような請求書が届いたか (開始日や終了日など) を確認し、詳細を取得して、出荷ソフトウェアにエクスポートできるようにすることだけです。トランザクションは問題なく機能しますが、なぜ請求書がこれほど異なるのか、またはそのデータの取得にこれほどまでに多くの作業が必要なのか、私にはわかりません。
参考までに、トランザクションをプルする方法は次のとおりです。
$client = new SoapClient( 'https://www.paypal.com/wsdl/PayPalSvc.wsdl',
array(
'location' => 'https://api-3t.paypal.com/2.0/',
'soap_version' => SOAP_1_1
));
$cred = array( 'Username' => $username,
'Password' => $password,
'Signature' => $signature
);
$Credentials = new stdClass();
$Credentials->Credentials = new SoapVar( $cred, SOAP_ENC_OBJECT, 'Credentials' );
$headers = new SoapVar( $Credentials,
SOAP_ENC_OBJECT,
'CustomSecurityHeaderType',
'urn:ebay:apis:eBLBaseComponents' );
$client->__setSoapHeaders( new SoapHeader( 'urn:ebay:api:PayPalAPI',
'RequesterCredentials',
$headers ));
$args = array(
'Version' => '94.0',
'StartDate' => '2014-03-25T00:00:00Z'
);
$TransactionSearchRequest = new stdClass();
$TransactionSearchRequest->TransactionSearchRequest = new SoapVar( $args,
SOAP_ENC_OBJECT,
'TransactionSearchRequestType',
'urn:ebay:api:PayPalAPI');
$params = new SoapVar($TransactionSearchRequest, SOAP_ENC_OBJECT, 'TransactionSearchRequest');
$result = $client->TransactionSearch($params);
print_r($result);