forked from Mirrors/go-iap
Add Validator for Purchase Product token (GooglePlay)
This commit is contained in:
@@ -62,7 +62,7 @@ func main() {
|
||||
# ToDo
|
||||
- [x] Validator for In App Purchase Receipt (AppStore)
|
||||
- [x] Validator for Subscription token (GooglePlay)
|
||||
- [ ] Validator for Purchase Product token (GooglePlay)
|
||||
- [x] Validator for Purchase Product token (GooglePlay)
|
||||
- [ ] More Tests
|
||||
|
||||
|
||||
|
||||
@@ -122,6 +122,23 @@ func (c *Client) VerifySubscription(
|
||||
return result, err
|
||||
}
|
||||
|
||||
// VerifyProduct Verifies product status
|
||||
func (c *Client) VerifyProduct(
|
||||
packageName string,
|
||||
productID string,
|
||||
token string,
|
||||
) (*androidpublisher.ProductPurchase, error) {
|
||||
service, err := androidpublisher.New(c.httpClient)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ps := androidpublisher.NewPurchasesProductsService(service)
|
||||
result, err := ps.Get(packageName, productID, token).Do()
|
||||
|
||||
return result, err
|
||||
}
|
||||
|
||||
func dialTimeout(network, addr string) (net.Conn, error) {
|
||||
return net.DialTimeout(network, addr, defaultTimeout)
|
||||
}
|
||||
|
||||
@@ -105,3 +105,24 @@ func TestVerifySubscription(t *testing.T) {
|
||||
|
||||
// TODO Nomal scenario
|
||||
}
|
||||
|
||||
func TestVerifyProduct(t *testing.T) {
|
||||
Init()
|
||||
|
||||
// Exception scenario
|
||||
token := &oauth.Token{
|
||||
AccessToken: "accessToken",
|
||||
RefreshToken: "refreshToken",
|
||||
Expiry: time.Unix(1234567890, 0).UTC(),
|
||||
}
|
||||
|
||||
client := New(token)
|
||||
expected := "Get https://www.googleapis.com/androidpublisher/v2/applications/package/purchases/products/productID/tokens/purchaseToken?alt=json: OAuthError: updateToken: Unexpected HTTP status 400 Bad Request"
|
||||
_, err := client.VerifyProduct("package", "productID", "purchaseToken")
|
||||
|
||||
if err.Error() != expected {
|
||||
t.Errorf("got %v", err)
|
||||
}
|
||||
|
||||
// TODO Nomal scenario
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user