2011-11-11 17 views
1

Google Checkoutをサイトに統合し、正常に担当者に請求したり、注文通知をうまく処理したりするようにしました。PHP Google Checkout通知 - 通知リクエストを送信するためのコードサンプル?

しかし、通知の詳細をGoogleにリクエストして返信すると、無効なXMLに関する400件の回答が届きます。

これまでのところ、この統合のためのすべてが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私はGoogleのサンプルコードでもチェックしましたが、階層化され依存関係に似ているので、残りの部分は謎です。サンプルはあまり役に立ちません

答えて

1

OKこれは本当に簡単でした。

私はのparamの名前が間違っていた

- このLIKE「タイプは」、「_type」されている必要があります:

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

私はパニックを回避、私が今必要な応答を取得しています:)

+0

何通知履歴を受け取る正しいプロセスですか?コールバックURLでこのリクエストを行いますか? (私は5分前に何かを読む必要があるので、混乱が起こる) – Ozzy

+0

良い質問があります。申し訳ありませんが、私はこれを実装してからずっとずっと、私はそれを置いたサイトを覚えていないことさえありました。私が覚えている限り、私がやっていたことは、Googleからのポケに対する返事でした。彼らはあなたのサイトに支払い/注文通知を送りました。それから、あなたはリクエストを返してより多くのデータを要求することになります。それで、通知が届いたら、利用可能なデータがあることを示唆しています。希望が役立つ – jammypeach

関連する問題