onRequestPurchaseResponse が呼ばれてonPurchaseStateChangeが呼ばれない件

表題どおり。
はまった。。。

サブスクリプションの実機テスト中に。
実機は、Galaxy S2 (Android OS 2.3.3)。

本来であれば、下記にもあるとおり、onRequestPurchaseResponseは、購入後の処理(購入ステート変更)として扱うべきではないと書いてある。なので、購入後の処理は、onPurchaseStateChangeに書くかと。

なのに、だ。購入後に、呼ばれるはずのonPurchaseStateChangeが呼ばれない。

onRequestPurchaseResponseの説明
This is called when we receive a response code from Market for a RequestPurchase request that we made. This is NOT used for any purchase state changes. All purchase state changes are received in onPurchaseStateChange(PurchaseState, String, int, long). This is used for reporting various errors, or if the user backed out and didn't purchase the item. The possible response codes are: RESULT_OK means that the order was sent successfully to the server. The onPurchaseStateChange() will be invoked later (with a purchase state of PURCHASED or CANCELED) when the order is charged or canceled. This response code can also happen if an order for a Market-managed item was already sent to the server. RESULT_USER_CANCELED means that the user didn't buy the item. RESULT_SERVICE_UNAVAILABLE means that we couldn't connect to the Android Market server (for example if the data connection is down). RESULT_BILLING_UNAVAILABLE means that in-app billing is not supported yet. RESULT_ITEM_UNAVAILABLE means that the item this app offered for sale does not exist (or is not published) in the server-side catalog. RESULT_ERROR is used for any other errors (such as a server error).

onPurchaseStateChangeの説明
This is the callback that is invoked when an item is purchased, refunded, or canceled. It is the callback invoked in response to calling BillingService.requestPurchase(String). It may also be invoked asynchronously when a purchase is made on another device (if the purchase was for a Market-managed item), or if the purchase was refunded, or the charge was canceled. This handles the UI update. The database update is handled in ResponseHandler.purchaseResponse(Context, PurchaseState, String, String, long).

すでに10回くらい試しているが、呼ばれるときと呼ばれないときがある。

どうすればいいんだよ、Googleよ。

追記。
タイトルのような事象はかえられないので、下記記事を参考にして、対処することにした。
android - onPurchaseStateChange not getting called - Stack Overflow