iap

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2017 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APPLE_ENV_PRODUCTION = "https://buy.itunes.apple.com/verifyReceipt"
	APPLE_ENV_SANDBOX    = "https://sandbox.itunes.apple.com/verifyReceipt"
)
View Source
const (
	APPLE_VALID                   = 0
	APPLE_UNREADABLE_JSON         = 21000
	APPLE_MALFORMED_DATA          = 21002
	APPLE_AUTHENTICATION_ERROR    = 21003
	APPLE_UNMATCHED_SECRET        = 21004
	APPLE_SERVER_UNAVAILABLE      = 21005
	APPLE_SUBSCRIPTION_EXPIRED    = 21006
	APPLE_SANDBOX_RECEIPT_ON_PROD = 21007
	APPLE_PROD_RECEIPT_ON_SANDBOX = 21008
)
View Source
const (
	GOOGLE_IAP_SCOPE = "https://www.googleapis.com/auth/androidpublisher"
	GOOGLE_IAP_URL   = "https://www.googleapis.com/androidpublisher/v2/applications/%s/purchases/%s/%s/tokens/%s"
)
View Source
const (
	CONTENT_TYPE_APP_JSON = "application/json"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AppleClient

type AppleClient struct {
	// contains filtered or unexported fields
}

func NewAppleClient

func NewAppleClient(password string, production bool, timeout int) (*AppleClient, error)

func NewAppleClientWithHTTP

func NewAppleClientWithHTTP(password string, production bool, httpClient *http.Client) (*AppleClient, error)

func (*AppleClient) Verify

type AppleInAppReceipt

type AppleInAppReceipt struct {
	Quantity                  string `json:"quantity"`
	ProductID                 string `json:"product_id"`
	TransactionID             string `json:"transaction_id"`
	OriginalTransactionID     string `json:"original_transaction_id"`
	PurchaseDate              string `json:"purchase_date"`
	OriginalPurchaseDate      string `json:"original_purchase_date"`
	ExpiresDate               string `json:"expires_date"`
	AppItemID                 string `json:"app_item_id"`
	VersionExternalIdentifier string `json:"version_external_identifier"`
	WebOrderLineItemID        string `json:"web_order_line_item_id"`
	CancellationDate          string `json:"cancellation_date"`
}

type ApplePurchase

type ApplePurchase struct {
	// The receipt data returned by the purchase operation itself.
	ProductId string
	// The product, item, or subscription package ID the purchase relates to.
	ReceiptData string
}

type AppleReceipt

type AppleReceipt struct {
	BundleID                   string               `json:"bundle_id"`
	ApplicationVersion         string               `json:"application_version"`
	InApp                      []*AppleInAppReceipt `json:"in_app"`
	OriginalApplicationVersion string               `json:"original_application_version"`
	CreationDate               string               `json:"creation_date"`
	ExpirationDate             string               `json:"expiration_date"`
}

type AppleRequest

type AppleRequest struct {
	ReceiptData string `json:"receipt-data"`
	Password    string `json:"password"`
}

type AppleResponse

type AppleResponse struct {
	//Either 0 if the receipt is valid, or one of the error codes
	Status int `json:"status"`
	// A JSON representation of the receipt that was sent for verification
	Receipt *AppleReceipt `json:"receipt"`
	// Only returned for iOS 6 style transaction receipts for auto-renewable subscriptions. The base-64 encoded transaction receipt for the most recent renewal.
	LatestReceipt string `json:"latest_receipt"`
	// Only returned for iOS 6 style transaction receipts for auto-renewable subscriptions. The JSON representation of the receipt for the most recent renewal.
	LatestReceiptInfo map[string]interface{} `json:"latest_receipt_info"`
}

type GoogleClient

type GoogleClient struct {
	// contains filtered or unexported fields
}

func NewGoogleClient

func NewGoogleClient(packageName string, serviceKeyFilePath string, timeout int) (*GoogleClient, error)

func NewGoogleClientWithHTTP

func NewGoogleClientWithHTTP(packageName string, httpClient *http.Client) (*GoogleClient, error)

func (*GoogleClient) VerifyProduct

func (*GoogleClient) VerifySubscription

type GoogleProductReceipt

type GoogleProductReceipt struct {
	Kind               string `json:"kind"`
	PurchaseTimeMillis int64  `json:"purchaseTimeMillis"`
	PurchaseState      int    `json:"purchaseState"`
	ConsumptionState   int    `json:"consumptionState"`
	DeveloperPayload   string `json:"developerPayload"`
}

type GooglePurchase

type GooglePurchase struct {
	// The identifier of the product or subscription being purchased.
	ProductId string `json:"ProductId"`
	// Whether the purchase is for a single product or a subscription.
	ProductType string `json:"ProductType"`
	// The token returned in the purchase operation response, acts as a transaction identifier.
	PurchaseToken string `json:"PurchaseToken"`
}

type GoogleSubscriptionReceipt

type GoogleSubscriptionReceipt struct {
	Kind                       string `json:"kind"`
	StartTimeMillis            int64  `json:"startTimeMillis"`
	ExpiryTimeMillis           int64  `json:"expiryTimeMillis"`
	AutoRenewing               bool   `json:"autoRenewing"`
	PriceCurrencyCode          string `json:"priceCurrencyCode"`
	PriceAmountMicros          int64  `json:"priceAmountMicros"`
	CountryCode                string `json:"countryCode"`
	DeveloperPayload           string `json:"developerPayload"`
	PaymentState               int    `json:"paymentState"`
	CancelReason               int    `json:"cancelReason"`
	UserCancellationTimeMillis int64  `json:"userCancellationTimeMillis"`
}

type PurchaseVerifyResponse

type PurchaseVerifyResponse struct {
	// Whether or not the transaction is valid and all the information matches.
	Success bool
	// If this is a new transaction or if Nakama has a log of it.
	SeenBefore bool
	// Indicates whether or not Nakama was able to reach the remote purchase service.
	PurchaseProviderReachable bool
	// A string indicating why the purchase verification failed, if appropriate.
	Message error
	// The complete response Nakama received from the remote service.
	Data string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL