要从应用商店的应用内购买收据中提取transactionId,您可以使用以下代码示例来实现:
Objective-C示例:
// 导入StoreKit框架
#import
// 从应用商店的应用内购买收据中提取transactionId的方法
- (NSString *)getTransactionIdFromReceipt:(NSData *)receiptData {
NSError *error;
NSDictionary *receipt = [NSJSONSerialization JSONObjectWithData:receiptData options:0 error:&error];
if (error) {
NSLog(@"Error parsing receipt: %@", error.localizedDescription);
return nil;
}
NSArray *inAppPurchases = receipt[@"in_app"];
if (inAppPurchases.count > 0) {
NSDictionary *latestPurchase = inAppPurchases.lastObject;
NSString *transactionId = latestPurchase[@"transaction_id"];
return transactionId;
}
return nil;
}
Swift示例:
import StoreKit
// 从应用商店的应用内购买收据中提取transactionId的方法
func getTransactionIdFromReceipt(receiptData: Data) -> String? {
do {
let receipt = try JSONSerialization.jsonObject(with: receiptData, options: []) as? [String: Any]
guard let inAppPurchases = receipt?["in_app"] as? [[String: Any]], !inAppPurchases.isEmpty else {
return nil
}
let latestPurchase = inAppPurchases.last!
guard let transactionId = latestPurchase["transaction_id"] as? String else {
return nil
}
return transactionId
} catch {
print("Error parsing receipt: \(error.localizedDescription)")
return nil
}
}
请注意,此代码仅用于从应用商店的应用内购买收据中提取transactionId。您需要确保已经获得了有效的应用内购买收据,并将其传递给上述方法以获取transactionId。