@@ -24,6 +24,7 @@ let productRequest: SKProductsRequest;
2424let productIds : NSMutableSet < string > ;
2525let productRequestDelegate : SKProductRequestDelegateImpl ;
2626let paymentTransactionObserver : SKPaymentTransactionObserverImpl ;
27+ let storedDeveloperPayload : string ;
2728
2829export function init ( productIdentifiers : Array < string > ) : Promise < any > {
2930 return new Promise ( ( resolve , reject ) => {
@@ -46,11 +47,13 @@ export function getProducts(): Promise<Array<Product>> {
4647 } ) ;
4748}
4849
49- export function buyProduct ( product : Product ) {
50+ export function buyProduct ( product : Product , developerPayload ?: string ) {
5051 if ( ! product . nativeValue ) {
5152 throw "Invalid Product! (missing native value)" ;
5253 }
5354
55+ storedDeveloperPayload = developerPayload ;
56+
5457 const payment = SKPayment . paymentWithProduct ( product . nativeValue ) ;
5558 SKPaymentQueue . defaultQueue ( ) . addPayment ( payment ) ;
5659}
@@ -123,12 +126,15 @@ class SKPaymentTransactionObserverImpl extends NSObject implements SKPaymentTran
123126 const transaction = transactions . objectAtIndex ( loop ) ;
124127 const resultTransaction = new Transaction ( transaction ) ;
125128
129+ resultTransaction . developerPayload = storedDeveloperPayload ;
130+
126131 common . _notify ( common . transactionUpdatedEvent , resultTransaction ) ;
127132
128133 if ( transaction . transactionState === SKPaymentTransactionState . Failed
129134 || transaction . transactionState === SKPaymentTransactionState . Purchased
130135 || transaction . transactionState === SKPaymentTransactionState . Restored ) {
131136 SKPaymentQueue . defaultQueue ( ) . finishTransaction ( transaction ) ;
137+ storedDeveloperPayload = undefined ;
132138 }
133139 }
134140 }
0 commit comments