IPN通信不具合と対応

6/15〜17にかけて、らくらくダウンロードにて何件かの受注データの取りこぼしがありました。

■15日、受注取りこぼし分(4件)
2012/6/15 12:42 ○
2012/6/15 21:25 ×
2012/6/15 21:30 ×
2012/6/15 22:53 ×
■16日、受注取りこぼし分(5件)
2012/6/16 0:20 ○
2012/6/16 0:22 ○
2012/6/16 8:04 ○
2012/6/16 8:38 ○
2012/6/16 20:51 ○
■17日、受注取りこぼし分(2件)
2012/6/17 1:18 ○
2012/6/17 17:59 ×

たいへんご迷惑をおかけしました。
取りこぼした受注について、○印のものについては相手先が特定できております。
×印のあるものは、現時点でまだ特定できておりません。
お心あたりのある方は、いま一度PayPalでの注文と受注履歴のご確認をお願いします。

取りこぼしの原因は、PayPalの提供するIPN(即時支払い通知)上のエラーにありました。
通常、IPNでの通信の受け渡しにおいて、PayPalサイトから以下のような応答が返ってきます。

PayPalサイト -- 正常時のレスポンス
HTTP/1.1 200 OK
Date: Mon, 18 Jun 2012 02:05:10 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Set-Cookie: *****; domain=.paypal.com; path=/; HttpOnly
Set-Cookie: cookie_check=yes; expires=Thu, 16-Jun-2022 02:05:10 GMT; domain=.paypal.com; path=/; Http
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/; HttpOnly
Set-Cookie: navlns=0.0; expires=Sun, 13-Jun-2032 02:05:10 GMT; domain=.paypal.com; path=/; HttpOnly
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8
 

VERIFIED

しかしながら、今回とりこぼした受注の応答を調べると、以下のような応答となっていました。

PayPalサイト -- 異常時のレスポンス
ACCESS from 173.0.81.1
HTTP/1.0 400 Bad Request
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 214
ExpiMon, 18 Jun 2012 01:16:48 GMT
Date: Mon, 18 Jun 2012 01:16:48 GMT
Connection: close
 



Invalid URL

Invalid URL

The requested URL "/cgi-bin/webscr", is

Reference #9.dc8a6875.1339982208.92ca9f

これを見る限り、何らかの理由(混雑、メンテナンス等)で、PayPalサイトが正常に応答できなかったようです。

らくらくダウンロードでは、基本的には以下のドキュメントに基づいてデータ取得を行っていました。
* PayPal技術ドキュメント -- IPN リスナーのインテグレーション
>> https://cms.paypal.com/jp/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNImplementation
このドキュメントのサンプルに沿ってデータ取得を行うと、
正常時には問題ないのですが、異常時にはデータをとりこぼしてしまいます。
この反省から、今回、正常であろうが、異常であろうが、
とにかく受信したデータは一度記録する方法に変更しました。
この変更によって、同様の異常が生じても、とりこぼしは無くなるはずです。

今回は一部のお客様に、たいへんご迷惑をおかけしました。
今後とも改善を重ねてゆく所存ですので、どうぞよろしくお願いいたします。