【问题标题】:inapp purchase call failetransaction when return...?退货时inapp购买调用failetransaction ...?
【发布时间】:2013-01-11 08:11:27
【问题描述】:

在我的 iPhone 应用中,我实现了 inAppPurchase,因此用户可以在应用中购买产品。它在 iTunes 应用商店上线。 我用沙盒很好地测试了它,没有显示任何信用卡验证页面。 当用户尝试从我的应用程序中进入应用商店以批准他/她的信息时,它会上线。

当用户通过所有进程时,从后台再次打开我的应用程序。

我在 -(void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 方法的 failedTransaction 中写给用户的消息提示上方。 该方法如下:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for(SKPaymentTransaction *transaction in transactions)
{
    switch (transaction.transactionState)
    {
        case SKPaymentTransactionStatePurchased:
            [self completeTransaction:transaction];
            break;
        case SKPaymentTransactionStateFailed:
            [self failedTransaction:transaction];
            break;
        default:
            break;
    }
}
}

谁能指导我出了什么问题?

【问题讨论】:

    标签: iphone ios in-app-purchase


    【解决方案1】:

    这是因为您的服务器实现了验证部分。

    检查以下事项:

    {
        "status" : 0,
        "receipt" : { (receipt here) },
        "latest_receipt" : "(base-64 encoded receipt here)",
        "latest_receipt_info" : { (latest receipt info here) }
    }
    

    首先在您的服务器端检查这些东西,然后调试代码并告诉我。

    上述响应之一可能会造成问题。

    谢谢,

    合芒。

    【讨论】:

    • 赫芒您好,感谢您的回复。但实际上,当它在信用卡验证后返回我的应用程序时,当时如果完成交易调用,我才收到收据,但它进入失败交易。
    • 添加这个方法:case SKPaymentTransactionStateRestored: [self restoreTransaction:transaction];休息;也添加这个方法。然后检查它。如果您仍然会收到失败的交易,那么服务器端验证有问题。
    • 好的,好的,所以我在 updateTransaction 部分中缺少 stareRestored 方法。那东西会不会产生问题。是不是信用卡验证回来的时候调用这个方法。
    • 但我该如何测试它,因为正如我在我的问题中发布的那样。在沙盒帐户中,它不会去任何地方进行信用卡验证,所以它与我上面提到的 updatedTransactions 代码一起运行非常顺利。实时应用程序存在此问题,当它进行信用卡验证时,用户必须再次打开我的应用程序,当他使用它进行验证时。
    • 你好,赫芒,请你能正确地指导我。我从过去几个星期以来一直停留在这里,在沙盒中没有发现任何问题。但我的实时应用无法使用相同的东西。
    猜你喜欢
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多