>If a user cancel the subscription through 'Manage Subscription', can we tell the subscription is canceled or not by auto_renew_status before the expired date? or it will only be updated when the subscription is expired?
First - this is an "I'm not going to renew" event. It is not when the user contacts Apple and says 'I don't want the current subscription that I was charged for - give me back my money' and Apple agrees. If so, a current receipt will have a 'cancellation_field'. Be sure to differentiate between cancelling the subscription and cancelling the transaction.
Second - you need to get a current receipt because the previous receipt may have been issued when the subscription was last renewed. You can get a current receipt by sending a receipt to the Apple servers and looking at the latest_receipt field. (Aside - since there is no ASN.1 entry, decoding on board won't work)
Third - this will indicate that the receipt will most likely not be renewed when it next expires. It does not indicate the subscription is not valid.