55### Features
66
77- ** OpenIAP Compliance** : Implemented changes from [ expo-iap PR #158 ] ( https://github.com/hyochan/expo-iap/pull/158 ) for standardized transaction identification
8+
89 - Added ` id ` field to ` Purchase ` class that maps to ` transactionId ` for OpenIAP compliance
910 - Updated native implementations to include ` id ` field in purchase responses
1011 - Enhanced ` finishTransaction ` to accept ` Purchase ` objects directly
1112
13+ - ** Unified Purchase Token** : Cross-platform server validation support
14+ - Added unified ` purchaseToken ` field for both iOS (JWS) and Android (purchase token)
15+ - iOS now includes JWS representation for server-side validation
16+ - Deprecated ` jwsRepresentationIOS ` and ` purchaseTokenAndroid ` in favor of ` purchaseToken `
17+ - Simplified cross-platform server validation workflow
18+
1219### Improvements
1320
1421- ** Transaction Management** : Simplified transaction finishing flow
22+
1523 - ` finishTransaction ` now accepts ` Purchase ` objects directly, preserving all purchase data
1624 - Removed unnecessary ` PurchasedItem ` to ` Purchase ` conversions
1725 - Improved transaction ID handling with proper fallback logic
26+ - Fixed duplicate transaction events with processed transaction tracking
1827
1928- ** iOS StoreKit 2** : Complete StoreKit 2 implementation
29+
2030 - Removed transaction caching in favor of direct StoreKit 2 API usage
2131 - Improved transaction search using ` Transaction.all `
2232 - Added comprehensive debug logging for troubleshooting
2333 - Enhanced date handling for purchase timestamps
34+ - Fixed transaction ID issues by removing StoreKit Configuration dependency
2435
2536- ** Date Handling** : Fixed date display issues
37+
2638 - Fixed "1970-01-01" date issue in Available Purchases
27- - Fixed "Unknown" date issue in Purchase History
39+ - Fixed "Unknown" date issue in Purchase History
2840 - Improved date parsing to handle multiple formats (ISO 8601, milliseconds, DateTime objects)
2941 - Consistent date handling across Android and iOS platforms
3042
43+ - ** Error Handling** : Enhanced error reporting
44+ - Added comprehensive purchase-error events following expo-iap patterns
45+ - Better error handling for both iOS and Android platforms
46+ - Improved duplicate event prevention
47+
3148### Bug Fixes
3249
3350- ** Android** : Added missing ` transactionId ` field in ` getPurchaseHistoryByType ` response
@@ -52,19 +69,21 @@ None - This version maintains backward compatibility while adding new features.
5269If you're upgrading from 6.1.x:
5370
54711 . ** Transaction Finishing** : You can now pass ` Purchase ` objects directly to ` finishTransaction() ` :
72+
5573 ``` dart
5674 // Old way (still works)
5775 await _iap.finishTransaction(purchasedItem, isConsumable: true);
58-
76+
5977 // New way (recommended)
6078 await _iap.finishTransaction(purchase, isConsumable: true);
6179 ```
6280
63812 . ** Transaction ID** : Use the ` id ` field for OpenIAP compliance:
82+
6483 ``` dart
6584 // OpenIAP compliant way
6685 final transactionId = purchase.id;
67-
86+
6887 // Legacy way (still works)
6988 final transactionId = purchase.transactionId;
7089 ```
0 commit comments