您好,我需要接收一個發佈數據,這些數據將以xml格式以base64格式編碼。 我將從支付網關接收此信息。現在我所得到的就是這個。我的代碼創建一個txt文件,但是是空的。代碼有什麼問題嗎?輸出應該是文本文件中的xml信封。接收發布數據xml
$body = '';
$fh = @fopen('php://input', 'r');
if ($fh)
{
while (!feof($fh))
{
$s = fread($fh, 1024);
echo $s;
if (is_string($s))
{
$body .= $s;
}
}
fclose($fh);
}
$body = base64_decode($body);
$ourFileName = "testFile.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fclose($ourFileHandle);
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $body;
fwrite($fh, $stringData);
fclose($fh);
我試圖聯繫支付網關,他們告訴我,他們得到這個錯誤「的遠程服務器返回錯誤:(417)預期失敗。」問題在哪裏可以存在我們或他們?
我誤讀了嗎? $ HTTP_RAW_POST_DATA將工作,而不是從php://輸入填充$ body?當你從fopen中刪除@時會出現什麼錯誤(如果有的話)? – ChrisK 2013-02-25 05:26:13
hi @ChrisK謝謝!我試過$ HTTP_RAW_POST_DATA,但它仍然是一個空白的文本文件,也試圖從fopen中刪除@,沒有錯誤,仍然是一個空白的文本文件。 – Kiel 2013-02-25 05:34:48
@ChrisK我也嘗試回聲'$ fh'只是爲了看看它是否包含一些東西。它顯示「資源ID#2」。 – Kiel 2013-02-25 05:47:24