我是新来的快去一直试图几乎所有获得多数民众赞成由去运行,我的谷歌端点,接收POST使用JSON进行验证,然后将其存储在Google数据存储中。golang谷歌端点收到JSON用于谷歌IAB验证和存储到谷歌数据存储
Golang端点包https://github.com/GoogleCloudPlatform/go-endpoints
这里的JSON我试图张贴到我的围棋端点的一个例子:
{\"json\": {\"orderId\": \"123456789.12341234\",\"packageName\":\"com.company.name\",\"productId\":\"productName\",\"purchaseTime\": 1410655975266,\"purchaseState\": 0,\"purchaseToken\": \"tokenData\"},\"signature\": \"signatureData\"}
下面是对谷歌的端点我Golang代码的例子:
type RawReceipt struct {
Key *datastore.Key `json:"id" datastore:"-"`
Receipt json.RawMessage `json:"json"`
}
func ReceiveJson(c endpoints.Context, rec *RawReceipt) error {
k := datastore.NewIncompleteKey(c, "DatastoreTest", nil)
_, err := datastore.Put(c, k, rec)
return err
}
我试图完成的伪代码:
var data below will need to contain {\"orderId\": \"123456789.12341234\",\"packageName\":\"com.company.name\",\"productId\":\"productName\",\"purchaseTime\": 1410655975266,\"purchaseState\": 0,\"purchaseToken\": \"tokenData\"},\"signature\": \"signatureData\"}
func Json(rawJson *RawJson) {
data := rawJson["json"]
signature := rawJson["signature"]
if Verify(jsonData, jsonSignature) {
// Store into Datastore
// The storing part works, just need to get the right data into it
k := datastore.NewIncompleteKey(c, "DatastoreTest", nil)
_, err := datastore.Put(c, k, rec)
return err
}
}
func Verify (jsonData *JData, jsonSignature, *Jsig) bool {
//I got this part working just fine.
if fail or err return false, else true
}
我需要能够从键抓住值JSON和签名所以我可以通过
{\"json\": {\"orderId\": \"123456789.12341234\",\"packageName\":\"com.company.name\",\"productId\":\"productName\",\"purchaseTime\": 1410655975266,\"purchaseState\": 0,\"purchaseToken\": \"tokenData\"}
到验证方法和作为签名
\"signature\": \"signatureData\"
验证方法的其他参数。
请告诉我奇怪的是,如果我看值rec.Receipt,JSON的失灵例如productId现在位于底部而不是原来的位置。
,我需要发生的最后一件事就是要把整个JSON和存储在谷歌数据存储。
作为一个方面说明,我已经在这是怎么回事,现在3天左右的阅读虽然文档,寻找其他计算器的问题,并一直在努力什么让这个工作。
任何及所有的帮助(s)为大大感谢!
你为什么要存储json? 创建结构并将json解组到结构并存储结构。 简单而正确的方法 – MIkCode
@MIkCode因为我想要原始收据。如果我需要重新验证,或者如果我将来想用其他方式做其他事情,我很高兴收到这些数据。键值对“json”由Google签名。 –