如何在Android Pay中更新钱包对象?

时间:2016-04-28 01:23:39

标签: android google-app-engine curl google-api android-pay

我正在使用“保存到Android Pay”API,我正在尝试更新其中一个对象。根据{{​​3}}。

实现它的一种方法是使用cURL命令并按照以下步骤操作:

  1. 获取令牌
  2.   

    java -jar TokenUtil.jar serviceAccountEmailAddress pathToPrivateKey

    1. 将特定对象保存到文本文件
    2.   

      curl -X GET https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" > myobjectfile.txt

      1. 进行我希望在文件中进行的更改(并将版本值增加1)
      2. 将更新后的文件推回服务器。
      3.   

        curl -X PUT https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d myobjectfile.txt

        步骤1 - 3工作正常,但当我尝试将对象推回服务器时,我收到以下错误:

        {
        "error": {
                 "errors": [
                           {
                           "domain": "global",
                           "reason": "parseError",
                           "message": "Parse Error"
                           }
                           ],
                 "code": 400,
                 "message": "Parse Error"
                 }
        }
        

        因为我在文件中所做的更改都是版本(也许某个标题中只有一个字符,只是为了看到更改)我不明白为什么我得到一个解析错误,因为myobjectfile.txt来自服务器及其内部结构不是由我建造的。

1 个答案:

答案 0 :(得分:0)

他们花了一段时间,但谷歌终于解决了他们的错误,并与我分享了他们的解决方案(希望他们也会很快更新他们的API):

•文件应该是.json文件而不是.txt文件。

•PUT命令中的文件名前应该有一个@符号:

  

curl -X PUT https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d @myobjectfile.json

应用这些更改后,我能够更新我的对象。