我正在尝试使用官方PlatformNotificationsCodeSample-PHP模板设置易趣平台通知。
我已使用我的密钥和令牌成功配置ebay.ini
。
有了这个,SetNotificationPreferences.php
和GetNotificationPreferences.php
都会导致成功调用没有问题。
使用GetNotificationPreferences
我可以看到我成功将ApplicationURL
更改为http://localhost/notifications/listener.php
如果我尝试通过命令行访问generator.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
和AskSellerQuestion.xml
我对listener.php
如何运作感到困惑。
我是直接在浏览器(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
,但这没有任何影响我仍然可以使用同样的错误。
我知道它已被建议使用php://input
,因为$HTTP_RAW_POST_DATA
在PHP 5.6.0中被折旧并在PHP 7.0.0中被删除,但根据eBay Knowledge base
请使用$ GLOBALS [&#34; HTTP_RAW_POST_DATA&#34;]来捕获有效负载 而不是file_get_contents(php://输入)。我们有类似的问题 客户在捕获时检索截止和不完整的有效负载 PHP输入流。
如何让这个SOAP侦听器工作,以便我可以开始配置我的平台通知?
答案 0 :(得分: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知识库和功能折旧的最佳解决方案。如果有人对此有任何更多的意见,请随意加入:)