是否有多种格式的在应用程序内结算的交易? [英] Are there multiple formats of In App Billing transactions?

查看:114
本文介绍了是否有多种格式的在应用程序内结算的交易?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们遇到了问题,核实一些支付交易(谷歌在应用程序内结算V3)。它看起来像繁琐的交易数据如下不同的格式比我们能在交易中看到我们有没有问题核实。

的交易,我们能够验证

  • ORDERID :用点分隔的两个数字: 92299713162054702728.1224255970239541
  • 签名:始终包含的base64填充底,345个字符

交易未能核实

  • ORDERID :一个数字: 5643493869375537013
  • 签名:丢失的base64填充,343个字符

(这些都不是实际的IDS)

添加手动填充时,它的缺失不利于验证签名。

为什么我们要接受不同格式的数据?为什么我们无法验证他们,尽管我们没有问题,验证普通的交易?我们应该怎么办/调查,为了解决这个问题呢?

解决方案

检查此链接:

  

http://developer.android.com/google/play/计费/ billing_admin.html#的orderId

 对于2012年12月或以后月5日的交易,谷歌钱包指定商户订单号(而不是谷歌订单号),并报告商户订单号为订单ID的价值。下面是一个例子:

的orderId:12999556515565155651.5565135565155651
凡是注日期的previous至5 2012年12月的交易,谷歌结帐分配一个谷歌订单号码并报告该数字为订单ID的价值。下面是一个ORDERID拿着谷歌订单号的例子:

的orderId:556515565155651
 

所以,我认为你可以通过存储日期明智的交易在你的数据库,并检查给定的日期是否是12月5日或以后再检查第一个其他人:第二个日期就解决了。

您还可以检查开发商的有效载荷来检查我们的交易是否已牢固地做或不该。谷歌Play商店会给你,你同时购买的应用程序产品给出了相同的有效载荷。

有关更多信息,请查阅此链接为开发有效载荷<一href="http://stackoverflow.com/questions/18613520/what-should-be-the-developer-payload-in-android-in-app-billing-v3-api/18650153#18650153">link

希望这本书能解决你的问题。

We're having problems verifying some of payment transactions (Google In App Billing V3). It looks like data of cumbersome transactions follows a different format than what we can see in transactions we have no problems verifying.

Transactions that we are able to verify

  • OrderId: Two numbers separated with a dot: 92299713162054702728.1224255970239541
  • Signature: Always includes base64 padding at the end, 345 characters long

Transactions that fail to verify

  • OrderId: One number: 5643493869375537013
  • Signature: Is missing base64 padding, 343 characters long

(those are not actual ids)

Adding padding manually when it's missing does not help to verify signatures.

Why are we receiving data in different format? Why are we unable to verify them, even though we have no problems verifying "ordinary" transactions? What should we do / investigate in order to solve this issue?

解决方案

Check this link:

http://developer.android.com/google/play/billing/billing_admin.html#orderId

For transactions dated 5 December 2012 or later, Google Wallet assigns a Merchant Order Number (rather than a Google Order Number) and reports the Merchant Order Number as the value of orderID. Here's an example:

"orderId" : "12999556515565155651.5565135565155651"
For transactions dated previous to 5 December 2012, Google checkout assigned a Google Order Number and reported that number as the value of orderID. Here's an example of an orderID holding a Google Order Number:

"orderId" : "556515565155651"

So I think you can solved it by storing date wise transaction in your database and check the date whether given date is 5 Dec or later then check 1st one else 2nd one.

or

you can also check the developer payload to check whether our transaction is securely done or not. Google play store will give you the same payload that you gave while purchasing the in app product.

For more information check this link for the developer payload link

Hope it will solve your problem.

这篇关于是否有多种格式的在应用程序内结算的交易?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆