如何处理 refund/cancellation 应用内购买
How to handle refund/cancellation in-app purchase
我正在尝试处理 iOS 的应用内购买退款。但是我找不到明确的指导方针来做到这一点。
所以我有一个会员类型的应用程序内购买功能,其中用户凭据不一定与 iTunes 帐户相关联。
是否有某种标识符可以让我在有人购买时参考,并且在他们通过 apple 申请退款时具有相同的标识符?
此外,他们退款时我们会立即收到通知吗?我需要立即退会。
谢谢!
您可以使用收据的各种元素来跟踪...其中大部分在应用程序内购买编程指南中进行了讨论。 https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html#//apple_ref/doc/uid/TP40008267-CH1-SW1
至于取消,视情况而定。如果订阅终止,则在当前订阅期限结束之前一直处于活动状态。如果是实际退款,似乎没有外部记录 "formal answer"。为遇到相同情况的其他人查看此问题... How does Apple notify iOS apps of refunds of in-app purchases (IAP)?
我最终存储了收据字符串和 运行 cron 来完成交易并查找取消字段。
$url = "https://buy.itunes.apple.com/verifyReceipt";
$data = json_encode(array('receipt-data' => $receipt));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
$errno = curl_errno($ch);
$errmsg = curl_error($ch);
curl_close($ch);
if ($errno != 0) {
throw new Exception($errmsg, $errno);
}
return $response;
我正在尝试处理 iOS 的应用内购买退款。但是我找不到明确的指导方针来做到这一点。
所以我有一个会员类型的应用程序内购买功能,其中用户凭据不一定与 iTunes 帐户相关联。
是否有某种标识符可以让我在有人购买时参考,并且在他们通过 apple 申请退款时具有相同的标识符?
此外,他们退款时我们会立即收到通知吗?我需要立即退会。
谢谢!
您可以使用收据的各种元素来跟踪...其中大部分在应用程序内购买编程指南中进行了讨论。 https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html#//apple_ref/doc/uid/TP40008267-CH1-SW1
至于取消,视情况而定。如果订阅终止,则在当前订阅期限结束之前一直处于活动状态。如果是实际退款,似乎没有外部记录 "formal answer"。为遇到相同情况的其他人查看此问题... How does Apple notify iOS apps of refunds of in-app purchases (IAP)?
我最终存储了收据字符串和 运行 cron 来完成交易并查找取消字段。
$url = "https://buy.itunes.apple.com/verifyReceipt";
$data = json_encode(array('receipt-data' => $receipt));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
$errno = curl_errno($ch);
$errmsg = curl_error($ch);
curl_close($ch);
if ($errno != 0) {
throw new Exception($errmsg, $errno);
}
return $response;