I am assuming you already have the account management facility in your app.
So answer to your second question would be to implement the register and login facility which would allow the users to log in with the fingerprint which is the separate problem.
So go ahead and solve this problem first.
The answer to your first question resides in the central server where you register and authenticate the users.
You will need to validate InApp purchase from your server.
The flow steps of how it should be done:
- User clicks on the buy button. (It does not matter whether the original user is doing this action or a fraud)
- Ask the user for authentication. In this case fingerprint. (The fraud would not be able to pass from this step.)
- The app initiates the purchase flow. The user completes the flow.
- The app receives the payment successful response from the google. (The app will not allow the access to the item to the user yet. The payment needs to be verified by our server. Google suggests we verify payment from the server and not the app. Refer to Security Best Practices.)
- The app sends purchase receipt received from the Google + Unique Id(UserId, Email, Phone no.) to the server.
- The server sends purchase receipt (purchaseToken) to Google for verification. The Google verifies it as a successful purchase.
- Now that our server knows that the purchase was successful it creates an entry in the database with purchase info (Purchase time, Start time, Expiry time etc.) and user info.
(This is the answer to your first question)
The flow steps when the user logs in from the iOS or any other device.
- The user logs in to the device.
- The user tries to use the purchased product.
- The app sends the request to the server.
- The server checks whether the user has access to the resource.
- Returns the response.
Key point is to have a Server which authenticates the user and verifies the purchase.
Follow my THIS answer you will get clear Idea on how to implement this.