苹果IAP订单退款怎么验证?

athurg 发布于 2014年03月27日 | 更新于 1月前
无人欣赏。

根据苹果的规则,对于App内已经完成的所有IAP,用户都是可以去申请退款的,只要理由勉强说得过去。比如说『我眼睛看花了』、『我儿子玩儿的时候点错了』。基本上前两次都可以成功退款。

次数多了可能不太好退了,但是——架不住用户有闲心可以多申请几个Apple ID啊!!

Apple大爷可能不太care这个,但是作为开发者,这可能就导致你所有需要付费的功能都给了用户后,一分钱都收不到。不要不相信,目前我们就遇到了一伙疯狂的用户,疯狂到这个月原本XXXX的收入,现在成了-XXXX

不知道大家有没有什么好辙,可以验证一个已经支付的订单是否被退款了。(明显的,我们手上有该订单的receipt,并且通过 https://buy.itunes.apple.com/verifyReceipt 可以获得transaction_id等等订单的基本信息)

PS:我们当然不能指望苹果在订单退款后,像支付宝那样发个异步通知给我们。甚至都不能指望苹果在后台给我们提供退款订单列表让我们手动处理。

PPS:希望大家不要歪楼啊!!!

共10条回复
cnsoft 回复于 2014年03月27日

貌似 由 Apple 的客服人员全权处理.. "
According to an answer one of my users received from Apple, refunding an app means they will no longer receive updates to the app, but doesn't remove the app from the device. IAP appears to work the same.

I am wondering if there is not a way by using restoreCompletedTransactions to check for the iAP purchase, but this would pop up a request for the user's iTunes password, so its use is limited."

退款并不会影响使用 只不过不能更新..

athurg 回复于 2014年03月27日

1楼 @cnsoft Apple客服处理的结果,作为开发者完全都不知情

Millson 回复于 2014年03月27日

那伙人太恶心了

cnsoft 回复于 2014年03月27日

2楼 @athurg 貌似回到一个焦点问题就是 信用 . 要真是有人冲了钱 买了钻 又找apple 退了钱 游戏却不知道 ,是个问题. 不过应该是个例.

athurg 回复于 2014年03月27日

4楼 @cnsoft 相信我,这个不是个例。想象一下一个月收入被退款为负数,是多么恐怖的事儿

coderonloft 回复于 2014年03月28日

退款还会导致排名大幅度下降,这个更苦逼。

cnsoft 回复于 2014年03月28日

5楼 @athurg 这不科学啊 。。

muscleBean 回复于 2016年07月18日

现在在做 IAP ,貌似也有这个问题。请问大家有好点的解决方案吗?难道就只能吃哑巴亏啊?

xdream86 回复于 2016年07月18日

尝试下面方法,不知道是否正确。如果可行,告知一下。

http://stackoverflow.com/questions/6439482/how-does-apple-notify-ios-apps-of-refunds-of-in-app-purchases-iap

The strategy is:

a. You save the latest_receipt ("MIIUJgYJKoZIhvc..." base64) field in your DB, associated with the user account.

b. Every day you query apple to validate all the receipts, by sending them the base64 receipt from saved latest_receipt field.

c. In the receipt you check if there is a cancellation_date field. If you find it, treat it according to apple documentation:

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

Cancellation Date

For a transaction that was canceled by Apple customer support, the time and date of the cancellation.

ASN.1 Field Type 1712

ASN.1 Field Value IA5STRING, interpreted as an RFC 3339 date

JSON Field Name cancellation_date

JSON Field Value string, interpreted as an RFC 3339 date

Treat a canceled receipt the same as if no purchase had ever been made.

cnsoft 回复于 1月前

2020了. apple 加了 S2S通知.

登录 或者 注册