2016-11-02 9 views
1

公式のPlatformNotificationsCodeSample-PHPテンプレートを使用して、eBayプラットフォーム通知を設定しようとしています。eBayプラットフォーム通知SOAPリスナーの問題

ebay.iniをキーとトークンで正常に設定しました。 これにより、SetNotificationPreferences.phpGetNotificationPreferences.phpの両方が問題なくSuccess callsになります。 GetNotificationPreferences

私は成功した私の変わっていることがわかりますApplicationURLhttp://localhost/notifications/listener.php

私は

C:\development\xampp\htdocs\notifications>php generator.php 
    <?xml version="1.0" encoding="UTF-8"?> 
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="urn:ebay:apis:eBLBaseComponents" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
    <SOAP-ENV:Body><ns1:GetMemberMessagesResponseResponse><return xsi:type="xsd:string"> 
    trachtenberga</return></ns1:GetMemberMessagesResponseResponse> 
    </SOAP-ENV:Body></SOAP-ENV:Envelope> 

はこの$argc$notifications arrayからの呼び出しに成功を返し、コマンドラインを介してgenerator.phpにアクセスしようとした場合にそしてAskSellerQuestion.xml

私はちょうどどのように混乱しているのですか?listener.php wor ks。私が直接ブラウザ(http://localhost/notifications/listener.php)でそれにアクセスするか、コマンドラインで、私は常に、次のエラーメッセージが表示されますかどうか

Notice: Undefined index: HTTP_RAW_POST_DATA in C:\development\xampp\htdocs\notifications\listener.php on line 107 

このラインビーイング:

$stdin = $GLOBALS['HTTP_RAW_POST_DATA']; 

のみ私が今までにUndefined index: HTTP_RAW_POST_DATAの問題に遭遇した解決策は、私のphp.iniの設定をalways_populate_raw_post_data = Onに変更することですが、これは影響がなく、私はまだ同じエラーが発生します。

私は$HTTP_RAW_POST_DATAはPHP 5.6.0で償却し、PHP 7.0.0で削除されますが、$ GLOBALSを使用してくださいeBay Knowledge base

に応じたので、代わりにphp://inputを使用することをお勧めされています知っている[ "HTTP_RAW_POST_DATA"] file_get_contents(php:// input)ではなくペイロード をキャプチャします。 クライアントがPHP入力ストリーム をキャプチャすると、カットオフや不完全ペイロードを取得するなどの問題が発生します。

このSOAPリスナーを有効にしてプラットフォーム通知の設定を開始するにはどうすればよいですか?

+0

誰かが私に加入者と受信者を実装する方法を教えてください。私は通知を受け取るAPIを書いていますが、どのように加入者についていくのですか?私は働いています.net mvc c# localhostで通知をテストする方法。 – coder771

+0

このスレッドはPHPのためのeBay APIについてです。私は.net mvc c#について考えていません。私の経験では、eBay APIを通じて受け取るプラットフォームの通知を単に「有効」にしておき、それを購読するたびにeBayは指定した場所に応答を送信します。 'SetNotificationPreferences'と' GetNotificationPreferences'はあなたがもっと見たいと思っているものです。 – bbruman

+0

私はsetnotifcationpreferenceを毎回呼び出してサブスクリプションが有効かどうかを確認する必要があるのか​​混乱しています。それは単なる一回のプロセスですか? – coder771

答えて

1

このスレッドをお忘れの方これを動作させるための私の解決策は、単純に使用することでした。

if (!isset($HTTP_RAW_POST_DATA)) { 
$HTTP_RAW_POST_DATA = file_get_contents("php://input"); 
} 

// then do what you want, for example I was doing something like this 
// to save the xml response to my web server 

$file_name= "order_shipped_".time().".xml"; 
$stdin = $GLOBALS['HTTP_RAW_POST_DATA']; 
file_put_contents($file_name, $stdin); 

そして私はすべての通知を受け取りました。

しかし、元のスレッドによれば、これはeBayナレッジベースと関数の減価償却を考慮に入れた最良の回避策ではありません。もし誰かがこれ以上チャットすることができないのであれば、チャイルムに気をつけてください:)