草庐IT

ios - 没有/verifyReceipt 请求的后端 iOS iap 收据验证

我想在我的后端代码中验证iOS应用内购买收据。Apple使用外部/verifyReceipt请求来执行此操作的设计决定非常愚蠢:它会导致延迟并增加网络错误处理的复杂性。更重要的是,收据中的数据看起来可以通过公钥验证。在对收据的signature字段进行一些分析后,它似乎包含一个PK验证的SHA1哈希:输出:Certificate:Data:Version:3(0x2)SerialNumber:65:14:91:4d:d9:58:04:b5SignatureAlgorithm:sha1WithRSAEncryptionIssuer:C=US,O=AppleInc.,OU=AppleCer

ios - 没有/verifyReceipt 请求的后端 iOS iap 收据验证

我想在我的后端代码中验证iOS应用内购买收据。Apple使用外部/verifyReceipt请求来执行此操作的设计决定非常愚蠢:它会导致延迟并增加网络错误处理的复杂性。更重要的是,收据中的数据看起来可以通过公钥验证。在对收据的signature字段进行一些分析后,它似乎包含一个PK验证的SHA1哈希:输出:Certificate:Data:Version:3(0x2)SerialNumber:65:14:91:4d:d9:58:04:b5SignatureAlgorithm:sha1WithRSAEncryptionIssuer:C=US,O=AppleInc.,OU=AppleCer

具有不同 iTunes 用户的 iOS 应用内购买收据

我在设备上本地使用收据验证并针对iOS7+我正在沙盒环境中测试应用购买中的自动续订订阅,我注意到了这种情况。-用户A在设备上登录iTunes帐户,在应用程序中购买订阅,获得应用程序收据。-用户A在设备上注销iTunes帐户,用户B登录-用户B启动应用程序-用户B将继续使用用户A的订阅,因为[[NSBundlemainBundle]appStoreReceiptURL]有效并将返回用户A的收据。为什么不返回用户B的收据? 最佳答案 必须刷新收据。SKReceiptRefreshRequest*request=[[SKReceiptRe

具有不同 iTunes 用户的 iOS 应用内购买收据

我在设备上本地使用收据验证并针对iOS7+我正在沙盒环境中测试应用购买中的自动续订订阅,我注意到了这种情况。-用户A在设备上登录iTunes帐户,在应用程序中购买订阅,获得应用程序收据。-用户A在设备上注销iTunes帐户,用户B登录-用户B启动应用程序-用户B将继续使用用户A的订阅,因为[[NSBundlemainBundle]appStoreReceiptURL]有效并将返回用户A的收据。为什么不返回用户B的收据? 最佳答案 必须刷新收据。SKReceiptRefreshRequest*request=[[SKReceiptRe

ios - 当服务器端收据验证失败时,我应该调用 finishTransaction 吗?

我使用服务器端收据验证。当客户的-(void)paymentQueue:(SKPaymentQueue*)queueupdatedTransactions:(NSArray*)transactions被调用,transactionState为SKPaymentTransactionStatePurchased,客户端将收据发送到我们的服务器,我们的服务器会验证它。服务端回执校验成功后,客户端显然调用了finishTransaction,没有问题。当服务器端收据验证失败时,因为apple临时返回非json,或者客户端发送了无效的收据,或者什么的,服务器将该信息返回给客户端。接下来,我们的

ios - 当服务器端收据验证失败时,我应该调用 finishTransaction 吗?

我使用服务器端收据验证。当客户的-(void)paymentQueue:(SKPaymentQueue*)queueupdatedTransactions:(NSArray*)transactions被调用,transactionState为SKPaymentTransactionStatePurchased,客户端将收据发送到我们的服务器,我们的服务器会验证它。服务端回执校验成功后,客户端显然调用了finishTransaction,没有问题。当服务器端收据验证失败时,因为apple临时返回非json,或者客户端发送了无效的收据,或者什么的,服务器将该信息返回给客户端。接下来,我们的

ios - 当 iOS7 应用程序收据中的交易 ID 发生变化时?

对于iOS6.1或更早版本,每次购买或恢复后收到的应用内购买交易ID都是唯一的,原始交易ID永远不会改变,即使在恢复后也是如此。但是,对于iOS7,交易id和原始交易id总是一样的!我什至尝试刷新收据,从设备中删除应用程序,然后再放回去。这两个字段始终相同。有谁知道在什么情况下交易ID会改变?我的服务器逻辑依赖于收据本身的唯一交易ID,目前在iOS7的情况下不起作用。以下为苹果服务器解密后的应用收据。如果我在本地解密,结果相同。{environment=Sandbox;receipt={"adam_id"=0;"application_version"="1.0";"bundle_id

ios - 当 iOS7 应用程序收据中的交易 ID 发生变化时?

对于iOS6.1或更早版本,每次购买或恢复后收到的应用内购买交易ID都是唯一的,原始交易ID永远不会改变,即使在恢复后也是如此。但是,对于iOS7,交易id和原始交易id总是一样的!我什至尝试刷新收据,从设备中删除应用程序,然后再放回去。这两个字段始终相同。有谁知道在什么情况下交易ID会改变?我的服务器逻辑依赖于收据本身的唯一交易ID,目前在iOS7的情况下不起作用。以下为苹果服务器解密后的应用收据。如果我在本地解密,结果相同。{environment=Sandbox;receipt={"adam_id"=0;"application_version"="1.0";"bundle_id

ios - 正在刷新 iOS 应用收据 : How to determine if user will need to sign in for app store?

我正在iOS7上实现Apple的“Grandunifiedreceipt”,它允许应用程序在本地检查应用程序的购买收据,而无需联系Apple的服务器进行验证和验证。如果用户在应用程序中存储了收据,这将非常有效。如果应用缺少收据,最佳做法是请求应用刷新其收据,如下所示:SKReceiptRefreshRequest*request=[[SKReceiptRefreshRequestalloc]init];[requestsetDelegate:self];[requeststart];问题是调用此代码将要求用户使用他或她的AppleID登录。我不能100%确定这种情况是一直发生,还是仅在

ios - 正在刷新 iOS 应用收据 : How to determine if user will need to sign in for app store?

我正在iOS7上实现Apple的“Grandunifiedreceipt”,它允许应用程序在本地检查应用程序的购买收据,而无需联系Apple的服务器进行验证和验证。如果用户在应用程序中存储了收据,这将非常有效。如果应用缺少收据,最佳做法是请求应用刷新其收据,如下所示:SKReceiptRefreshRequest*request=[[SKReceiptRefreshRequestalloc]init];[requestsetDelegate:self];[requeststart];问题是调用此代码将要求用户使用他或她的AppleID登录。我不能100%确定这种情况是一直发生,还是仅在