For app sellers on the Amazon Appstore, you can already view purchase information through communication between your app and the Amazon Appstore. Amazon feels that you might want a better way of confirming this information so they have introduced the Receipt Verification Service.
Amazon says that RVS is meant to be an “out-of-band verification” system. It’s purpose is to be an alternative way to check to see if the receipt being used is valid, to verify entitlement to content before delivering it from the server or to see if a subscription is valid and to fulfill content.
To use this new tool, developers will need both a purchase token and the user ID. The purchase token can be found inside of the receipt whenever a user purchases an item inside of an app. The receipt will contain a string called the Purchase Token. The token contains the information that RVS needs to validate the purchase. Amazon is quick to point out that purchase tokens are pretty much worthless beyond RVS validation so they can’t be used for anything else.
The user ID can be obtained through similar means. Just use the GetUserIdResponse.getUserId() call via the Purchasing Observer. The ID will tell you the unique identity of the currently logged in user.
Now that the two prerequisites are fulfilled, RVS can get to work. Amazon uses the example of a person buying a magazine as an in-app purchase off the Amazon Appstore. The process starts with an app receiving a receipt from the appstore which then the app grabs the purchase token and user ID and sends them off to the verification server. The verification server sends the information back over to the Amazon Receipt Verification Server which returns an RVS response so that the app’s server can then deliver the requested content.
If you want to take advantage of this service, Amazon says that you will need a Developer Shared Secret as well. This allows Amazon’s servers to know the request came from your server instead of any of the other thousands of servers out there.
RVS is a tool that will help developers validate in-app purchases through the Amazon Appstore. There might be an issue though where Amazon’s servers are down and you won’t be able to use RVS. In that case, Amazon says that you can either just go ahead and deliver the content to the user without verification, withhold the content until verification can be achieved or temporarily give the user the content until their information can be verified.
It’s important to note that RVS is an optional service. You can still deliver in-app purchases and goods the old fashioned way. It’s just Amazon’s hope that this service will help developers as much as it will help them keep track of in-app purchases while better identifying those who purchase content.