2011-11-11 29 views
1

我已將Google Checkout與網站集成在一起,讓它工作/假裝向人收費並且處理訂單通知的罰款。PHP Google Checkout Notifications - 用於發送通知請求的代碼示例?

但是,當我向Google發出請求以獲取通知的詳細信息時,我收到了400條響應,這是有關無效XML的一些問題。

事情是,到目前爲止,這個集成的一切都是HTML鍵值對,但突然之間我需要解析和處理XML?我可能會錯過一些東西,但我無法看到文檔中的位置,它確切地告訴我我的請求應該是什麼樣子。

在這裏看到: http://code.google.com/apis/checkout/developer/Google_Checkout_HTML_API_Notification_API.html#Receiving_and_Processing_Notifications

它清楚地列出了與名稱/值對的例子,但顯然我確實需要送他們爲XML?

這裏就是我現在:

<?php $header_arr = array("Authorization: Basic ".$authKey, 
        "Content-Type: application/xml; charset=UTF-8", 
      "Accept: application/xml; charset=UTF-8"); 

$request='type=notification-history-request&serial-number='.$serialNumber; 

$ch = curl_init($test_URL);  
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_arr); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$body = curl_exec($ch); 

if (curl_errno($ch)) { 
    $log.=', error! :'.curl_error($ch); 
} else { 
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $log.=', status code is: '.$status_code; //400 
} 
?> 

這將返回每次400 - 是的,我知道我設置爲XML的接受頭,這是因爲該文檔指定,此處http://code.google.com/apis/checkout/developer/Google_Checkout_HTML_API.html#https_auth_scheme

因此,我發現自己需要發送正確的請求...任何想法?

PS我也檢查通過谷歌的示例代碼,但它是如此分層和依賴性纏身,雖然我設法使用它的一些,其餘的是一個謎 - 所以除非你可以給我行號,樣品沒有太大的幫助

回答

1

事實證明這很簡單。

我錯了帕拉姆的名字 - 「型」應該是「_type」,像這樣:

$request='_type=notification-history-request&serial-number='.$serialNumber; 

我得到我現在需要的反應,恐慌避免:)

+0

有什麼接收通知歷史的正確過程?你是否在你的回調網址中提出這個請求? (我讀了一些關於順序必須是5分鐘的老,所以混亂出現) – Ozzy

+0

有一個很好的問題。抱歉,但自從我實施這個項目以來,我一直都沒有記住我在哪個網站上放置過這個網站。據我所知,我在做的是對谷歌捅錢的迴應 - 他們將付款/訂單通知發送到您的網站,然後由您返還請求並索取更多數據。因此,這表明當他們向您發送通知時,*有*數據可用。希望有所幫助 – jammypeach

相關問題