谷歌账号订阅失败

谷歌账号订阅失败,第1张

1、google的普通商品与订阅商品校验的api不一样,注意查看官方文档中的返回数据结构说明。

2、google普通商品校验返回,没有实际支付价格及支付货币类型,如果要统计的话,可由客户端上传上来;订阅商品的校验返回有这两个数据。ios返回里没有这两个数据。

3、ios校验时,如果有订阅商品,那么所有票据的校验都要传 password 参数;传 exclude-old-transactions 参数并设置为true,可以只返回最后一个订阅数据(减少返回的数据量)。

4、ios普通商品校验返回数据时,注意检查 bundle_id 是否是当前app的,防刷。

5、google/ios校验返回后,都需要把交易号(ios:transaction_idgoogle:orderId)记录下来,表示这一笔支付已完成了,防刷。

6、ios校验的返回,在in_app数组里可能有多笔支付(未正确销单或有订阅的),处理的时候需要遍历一下,找到正确的支付数据。

7、订阅免费试用:如果设置了免费试用,校验返回里有相应标记(ios:is_trial_period=truegoogle:paymentState=2),处理发货时注意免费试用的天数。

8、设置了免费试用的,用户试用过后需要有记录,防止用户切换不同的支付账号刷试用。

9、google订阅如果设置有宽限期的,校验返回paymentState=0,但有效期往后延了大概12个小时,服务器处理时,只需要把订阅扣款截止时间往后延就好了,不要处理发货。

10、ios/google支付时,最好不要做服务器预下单逻辑(创建自己的一个order)。客户端可以先到服务器判断是否可购买当前商品(限购等判断),若可以购买,则客户端支付,然后让服务器验票据,这个时候服务器可以根据需求来创建自己的订单,并且验票据。这么做的目的是因为我们发现ios透传上去的自己的orderId,在补单时不知道为什么有时拿到的orderId跟支付的票据不是对应的,造成无法补单,无法销单(这个有可能是客户端的bug,但还没查出来)。

Updated by Leo: Google支付可以预下单,因为谷歌侧也提供了两个扩展字段来存储服务端的订单号已经用户ID,若App原因导致未能调用接口入账时,也可以通过谷歌的通知实现入账.

11、ios/google支付,一定要注意销单问题,如果某商品不销单,就无法再次购买这个商品,并且google的在几天后会自动退款。理论上客户端在服务器返回正确后就处理销单,但服务器为了防刷,可能有很复杂的逻辑判断认为支付失败(比如服务器验单成功后返回,但客户端因为某些原因未销单,再次登录后,客户端发起补单流程,服务器发现当前票据已验过了)。所以,最好的办法是让服务器返回参数,告诉客户端当前票据要不要销单,这样客户端就不用去判断哪些情况下需要销单,哪些不能销单。

12、订阅续订,如果是在服务器到截止日期去平台查询是否有续订的话,记得在客户端重新购买订阅商品时,把最新的票据更新一下;ios的票据校验返回会有一个 latest_receipt,可以取这个来更新。

13、ios的官方有说,订阅的 transaction_id 在更换设备后是会变化的,所以,不能只依赖 transaction_id 来判断当前订阅是否有效,还需要依据 purchase-date-ms、expires_date_ms 等来判断当前票据是否有效。

本节介绍井通区块链标准接口的订阅服务功能。

为了减少前端软件的复杂度,井通区块链标准接口(REST API)提供了井通钱包地址的websocket长连接服务。前端软件可以通过 websocket连接向标准接口订阅和井通地址相关的交易信息。一旦订阅成功,任何和该地址相关的交易信息将会通过相应的 websocket连接传给订阅客户端。

REST API订阅后台服务器的测试环境是: wss://tapi.jingtum.com:5443/v2 。

由于订阅功能是采用websocket实现的,因此要测试订阅功能,可以采用websocket在线测试工具。 这里推荐一款比较好用的websocket在线测试工具: http://ws.douqq.com/ 。 另外,由于websocket返回的都是JSON格式的数据,比较难以阅读,可以采用JSON在线解析工具。 这里推荐一款好用的JSON在线解析工具: https://www.bejson.com/ 。

例子:

1)在浏览器里面打开 http://ws.douqq.com/ 网站。

2)在ws链接输入框里面输入 wss://tapi.jingtum.com:5443/v2 ,点击后面的“连接”按钮。 3)如果不出意外,就会连接上订阅服务器。如下如所示:

如果写程序调用,连接订阅服务器后,就可以实现自动化处理订阅请求的返回消息。

1)客户端连接上订阅服务器后,就可以向服务器发起订阅请求。订阅请求格式如下:

订阅请求中,必须将订阅用户的钱包地址和订阅类型一起提交上来。 参数type表示订阅类型,包含3种: account:订阅某个账号的交易记录、 transactions:订阅所有交易记录、

ledger:订阅账本消息

订阅成功之后,返回:

一旦订阅成功,这个订阅状态就会一直持续,直到客户端取消订阅,或者关闭订阅。如果由于网络原因,导致订阅失效,也 需要重新订阅。

当请求的JSON格式不对时,返回:

当请求的参数有问题时,返回:

error包括缺少account,type,account格式不对,type格式不对等,分别是: 1.missing account 2.account is not valid jingtum address

3.invalid type,......

客户端订阅了钱包的交易消息,然后向该钱包发送支付交易,客户端可以收到如下的交易信息:

基本格式为:

account: 帐号,订阅的井通钱包地址。

type: 交易类型,与API里面的信息一致,主要有Payment、OfferCreate、OfferCancel和RelationSet transaction: 交易信息,与API里面的信息一致。

在用户被动成交时,用户也会收到交易相关的信息。

当交易失败时,会有如下的格式的消息:

通过success可以判断返回的交易结果是成功的还是失败的,其他的失败记录均即时反馈回给用户,无需在订阅中获得。

取消订阅成功时候,返回:

当请求的JSON格式有问题时,返回:

当请求的参数不正确时,返回:

取消订阅,参数不正确主要是account缺失或者格式不正确: a)account is missing b)Invalid type 等


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/658038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-24
下一篇2023-07-24

发表评论

登录后才能评论

评论列表(0条)

    保存