结构良好的JWT,但仍然得到商人错误

时间:2014-01-21 17:17:31

标签: android-pay google-chrome-app

我正在尝试为Chrome打包应用设置应用内付款。当我将SellerSecret和SellerIdentifier从沙盒切换到我自己的时候,当我调用buy()时,我得到了一个merchant_error。

据我所知,这个错误似乎表明JWT格式不正确(但唯一的区别就是用我自己的方式切换样本密码和标识符。)

我使用过JWT解码器(https://developers.google.com/wallet/digital/docs/jwtdecoder),看起来很好。

这是JWT

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIwMDQwNDkxNDU3OTM0MTYxMzI0MiIsImF1ZCI6Ikdvb2dsZSIsInR5cCI6Imdvb2dsZVwvcGF5bWVudHNcL2luYXBwXC9pdGVtXC92MSIsImV4cCI6MTM5MjkxNTg3NCwiaWF0IjoxMzkwMzIzODc0LCJyZXF1ZXN0Ijp7Im5hbWUiOiJEYW4ncyBQaWVjZSBvZiBDYWtlIiwiZGVzY3JpcHRpb24iOiJUZXN0IFB1cmNoYXNlIDEiLCJwcmljZSI6IjEwLjUwIiwiY3VycmVuY3lDb2RlIjoiVVNEIiwic2VsbGVyRGF0YSI6InVzZXJfaWQ6MTIyNDI0NSxvZmZlcl9jb2RlOjMwOTg1NzY5ODcsYWZmaWxpYXRlOmFrc2RmYm92dTlqIn19.SHwbbWiJMnyXxui-WbaDs3Z1_7mdn5lFWCJatmug1Rg

任何人都可以帮忙吗?

谢谢! -Daniel

更新:我刚刚使用ruby示例代码https://developers.google.com/wallet/digital/docs/tutorial生成了一个JWT,当使用我的沙盒秘密和ID时,它很好但是当我使用我自己的秘密和卖家ID时它失败了。这是从Ruby生成的JWT:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIwMDQwNDkxNDU3OTM0MTYxMzI0MiIsImF1ZCI6Ikdvb2dsZSIsInR5cCI6Imdvb2dsZS9wYXltZW50cy9pbmFwcC9pdGVtL3YxIiwiZXhwIjoxMzkwMzUzOTU0LCJpYXQiOjEzOTAzNTAzNTQsInJlcXVlc3QiOnsibmFtZSI6IlBpZWNlIG9mIENha2UiLCJkZXNjcmlwdGlvbiI6IlZpcnR1YWwgY2hvY29sYXRlIGNha2UgdG8gZmlsbCB5b3VyIHZpcnR1YWwgdHVtbXkiLCJwcmljZSI6IjEwLjUwIiwiY3VycmVuY3lDb2RlIjoiVVNEIiwic2VsbGVyRGF0YSI6InVzZXJfaWQ6MTIyNDI0NSxvZmZlcl9jb2RlOjMwOTg1NzY5ODcsYWZmaWxpYXRlOmFrc2RmYm92dTlqIn19.6enjLDpM-fxg69-XtcllsyVXBqRNbdhhBzXSr7jmyCM

当我用上述jwt调用buy()时,我仍然得到一个商人错误。

2 个答案:

答案 0 :(得分:0)

您的类型在jwt中也是双重转义google / payments / inapp / item / v1,发行人看起来就像是以00开头。

您使用PHP生成它吗?应该有一个选项将对象转换为JSON而不转义字符串。

你能仔细检查它实际上是从00开始吗?

答案 1 :(得分:0)

当您切换到“自己”(假设您的意思是制作 ID / secret)时,您也将来电切换为production buy()

<script src="https://wallet.google.com/inapp/lib/buy.js"></script>

更新

有用的信息参考@ Danprime的评论:

  

对于Apps,您必须使用名为 parameters 的额外参数调用buy()。此参数当前有一个字段 env ,它指定处理付款的环境。您可以将此字段设置为 prod (接受真实信用卡的生产服务器)或 sandbox (接受测试信用卡以模拟交易的测试服务器)。默认设置为sandbox。