问题描述
A),我需要在服务器上编写代码以验证Android inApp购买收据。看起来好像是通过Google Play完成的。大致来说,我需要googleapis/google-api-java-client来做到这一点。
现在,我一直在梳理文档和SO问题。但是我仍然不清楚如何做到这一点。这个问题(Android:inApp购买收据验证Google Play 1 2)是我最明确的解释(purchases.products.get
和purchases.subscriptions.get
)。但这是从2016年开始的。
但是关于如何获取access_token似乎没有明确的解释。 steps here似乎表示成功。但这看起来有点过时了,写于2012年。
在哪里有关于i明确步骤的地方。设置您的Google Play开发者帐户,并ii。生成测试和生产令牌以进行iii。验证Android inApp的购买和订阅?
B)(更新)
我还尝试使用Google Play客户端API(Clojure代码只是Java的超集)来完成此任务。
(do
(def packageName "foo.bar") <= is this right?
(def productId "product.id")
(def key "api-key.json") <= regenerated service account & keys
(def purchasetoken "inapp:foo.bar:android.test.purchased") <= is this right?
(def request-scope "https://www.googleapis.com/auth/androidpublisher") <= from https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/get
(def httpTransport (GoogleNetHttpTransport/newTrustedTransport))
(def jsonFactory (JacksonFactory/getDefaultInstance))
(def credential (doto (GoogleCredential/fromStream
(-> (Thread/currentThread)
(.getContextClassLoader)
(.getResourceAsstream key)))
(.createScoped (Collections/singleton request-scope))))
(def publisher (.. (AndroidPublisher$Builder. httpTransport jsonFactory credential)
(setApplicationName packageName)
(build))))
(def result (.. publisher
(purchases)
(products)
(get packageName productId purchasetoken)
(execute)))
调用(.. publisher (purchases) (products) (get packageName productId purchasetoken) (execute);
会导致无效的作用域错误。
400 Bad Request
{
"error" : "invalid_scope","error_description" : "Invalid OAuth scope or ID token audience provided."
}
我确定
- i)范围还可以,
- ii)服务帐户密钥很好。
但是这些值好吗?如果没有,我在哪里可以得到良好的测试值?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)