我正在尝试为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()时,我仍然得到一个商人错误。
答案 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。