Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>So you will get a postback only twice: when you subscribe and when you cancel. This sounds good but it is more complex than this. Here are two examples:</p> <ol> <li>User Cancelation</li> </ol> <p>Let's say that the customer decided to cancel mid-trial period. You will receive the notification callback instantly even before the trial is over. This means that on your end you will have to figure out what to do. In theory, you should match the order id with the data you have recorded for the subscription and give the remaining time back to the user, i.e. not disable their account immediately.</p> <p>The situation is very similar when a paying customer decides to cancel. If they cancel in the middle of their billing period, you will have to look back when the period started, and round their to the nearest billing cycle and allow them to use your service until then. This can create a few problems because the method will likely differentiate from what Google is doing on their side.</p> <ol> <li>Failed Payment</li> </ol> <p>This is where we get into problems. Google will automatically cancel the subscription if the payment has failed but that will occur perhaps a few days into the new billing cycle. When you receive the notification callback there is no way of knowing the reason for the cancelation so typically you don't know what to do. If you cancel the order immediately and the notification was for a paying customer trying to cancel the order so that they don't hit the next billing date then you will have to give their remaining days for which day already payed. But because there is no way of differentiating the cancelations you cannot tell if this is due to an invalid credit card in which case you should cancel immediately.</p> <p>The only solution to this problem is to manually investigate your orders. And this is what sucks about Google Wallet although it is a pretty cool service.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload