132768c0fe81e5727f6115f37bf7699f3ff97dad
Use a new struct called `HttpStatusResponse` to check the status code returned in the receipt. This is ios-type independent and will redirect the receipt to sandbox if needed. Following Apple's recommendation, always hit production and then sandbox. There is no more need to specify which environment to hit.
go-iap
go-iap verifies the purchase receipt via AppStore, GooglePlayStore or Amazon AppStore.
Current API Documents:
Dependencies
go get golang.org/x/oauth2
go get golang.org/x/oauth2/google
go get google.golang.org/api/androidpublisher/v2
Installation
go get github.com/dogenzaka/go-iap/appstore
go get github.com/dogenzaka/go-iap/playstore
go get github.com/dogenzaka/go-iap/amazon
Quick Start
In App Purchase (via App Store)
import(
"github.com/dogenzaka/go-iap/appstore"
)
func main() {
client := appstore.New()
req := appstore.IAPRequest{
ReceiptData: "your receipt data encoded by base64",
}
resp := &appstore.IAPResponse{}
err := client.Verify(req, resp)
}
In App Billing (via GooglePlay)
import(
"golang.org/x/oauth2"
"github.com/dogenzaka/go-iap/playstore"
)
func main() {
// You need to prepare a public key for your Android app's in app billing
// at https://console.developers.google.com.
jsonKey, err := ioutil.ReadFile("jsonKey.json")
if err != nil {
log.Fatal(err)
}
client := playstore.New(jsonKey)
resp, err := client.VerifySubscription("package", "subscriptionID", "purchaseToken")
}
In App Purchase (via Amazon App Store)
import(
"github.com/dogenzaka/go-iap/amazon"
)
func main() {
client := amazon.New("developerSecret")
resp, err := client.Verify("userID", "receiptID")
}
ToDo
- Validator for In App Purchase Receipt (AppStore)
- Validator for Subscription token (GooglePlay)
- Validator for Purchase Product token (GooglePlay)
- More Tests
Support
In App Purchase
This validator supports the receipt type for iOS7 or above.
In App Billing
This validator uses Version 3 API.
In App Purchase (Amazon)
This validator uses RVS for IAP v2.0.
License
go-iap is licensed under the MIT.
Languages
Go
99.6%
Makefile
0.4%