Skip to content

Commit e386616

Browse files
support refresh receipt: take from chirag04#140
1 parent da0de5c commit e386616

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

InAppUtils/InAppUtils.m

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,35 @@ - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
192192
callback(@[@(canMakePayments)]);
193193
}
194194

195+
RCT_EXPORT_METHOD(refreshReceipt:(BOOL)testExpired
196+
testRevoked:(BOOL)testRevoked
197+
callback:(RCTResponseSenderBlock)callback)
198+
{
199+
SKReceiptRefreshRequest *refreshRequest;
200+
if (testExpired || testRevoked) {
201+
NSDictionary *properties = @{
202+
SKReceiptPropertyIsExpired:@(testExpired),
203+
SKReceiptPropertyIsRevoked:@(testRevoked)
204+
};
205+
refreshRequest = [[SKReceiptRefreshRequest alloc] initWithReceiptProperties:properties];
206+
} else {
207+
refreshRequest = [[SKReceiptRefreshRequest alloc] init];
208+
}
209+
refreshRequest.delegate = self;
210+
_callbacks[RCTKeyForInstance(refreshRequest)] = callback;
211+
[refreshRequest start];
212+
}
213+
214+
- (void)requestDidFinish:(SKRequest *)request
215+
{
216+
NSString *key = RCTKeyForInstance(request);
217+
RCTResponseSenderBlock callback = _callbacks[key];
218+
if (callback) {
219+
callback(@[[NSNull null], @"finished"]);
220+
[_callbacks removeObjectForKey:key];
221+
}
222+
}
223+
195224
RCT_EXPORT_METHOD(receiptData:(RCTResponseSenderBlock)callback)
196225
{
197226
NSString *receipt = [self grandUnifiedReceipt];

0 commit comments

Comments
 (0)