[InApp] updates - tmp save and get receipt + shopCell updated

This commit is contained in:
Brieuc Viel 2016-10-03 17:03:40 +02:00
parent 1bcfdaf75d
commit 97e1859471
2 changed files with 77 additions and 11 deletions

View file

@ -54,10 +54,15 @@
warnBeforeExpiryPeriod = [LinphoneManager.instance lpConfigIntForKey:@"warn_before_expiry_period" inSection:@"in_app_purchase"];
lastCheck = 0;
int testExpiry = [LinphoneManager.instance lpConfigIntForKey:@"expiry_time_test" inSection:@"in_app_purchase"];
if (testExpiry > 0){
expiryTime = time(NULL) + testExpiry;
}else expiryTime = 0;
//========// for test only
// int testExpiry = [LinphoneManager.instance lpConfigIntForKey:@"expiry_time_test"
// inSection:@"in_app_purchase"];
// if (testExpiry > 0){
// expiryTime = time(NULL) + testExpiry;
//}else expiryTime = 0;
//========//
[self checkAccountExpirationDate];
if (_enabled) {
// self.xmlrpc = [[InAppProductsXMLRPCDelegate alloc] init];
_status = kIAPNotReady;
@ -221,9 +226,29 @@
NSString *receiptBase64 = [[NSData dataWithContentsOfURL:receiptURL] base64EncodedStringWithOptions:0];
LOGI(@"Found appstore receipt %@", [receiptBase64 md5]);
[self saveReceiptTemp:receiptBase64];
return receiptBase64;
}
/**
Save Receipt temporarily until xmlrpc server request completed and confiramation sent
**/
- (void)saveReceiptTemp:(NSString *)receipt {
[LinphoneManager.instance lpConfigSetString:receipt forKey:@"tmp_receipt" inSection:@"in_app_purchase"];
}
/**
reset Receipt to empty after xmlrpc request confiramation received
**/
- (void)removeTmpReceipt:(NSString *)receipt {
if ([LinphoneManager.instance lpConfigStringForKey:@"tmp_receipt" inSection:@"in_app_purchase"])
[LinphoneManager.instance lpConfigSetString:@"0" forKey:@"tmp_receipt" inSection:@"in_app_purchase"];
}
- (NSString *)getTmpReceipt {
return [LinphoneManager.instance lpConfigStringForKey:@"tmp_receipt" inSection:@"in_app_purchase"];
}
- (void)validateReceipt:(SKPaymentTransaction *)transaction {
NSString *receiptBase64 = [self getReceipt];
if (receiptBase64 == nil) {
@ -243,7 +268,23 @@
if ([[self getPhoneNumber] length] > 0) {
NSString *phoneNumber = [self getPhoneNumber];
NSString *password = [self getPassword];
[XMLRPCHelper.self
/*if(expiryTime == 0){
[XMLRPCHelper.self sendXMLRPCRequestWithParams:@"activate_account"
withParams:@[
phoneNumber,
password,
@"",
receiptBase64
]
onSuccess:^(NSString *response) {
if (response) {
LOGI(@"update_expiration_date callback - response: %@", response);
}
}];
}
else{
*/ [XMLRPCHelper.self
sendXMLRPCRequestWithParams:@"update_expiration_date"
withParams:@[
phoneNumber,
@ -281,6 +322,7 @@
}
}
}];
// }
} else {
LOGW(@"No SIP URI configured, doing nothing");
@ -455,6 +497,30 @@
}
}
- (BOOL)checkAccountExpirationDate {
if ([[self getPhoneNumber] length] > 0) {
NSString *phoneNumber = [self getPhoneNumber];
NSString *password = [self getPassword];
[XMLRPCHelper.self
sendXMLRPCRequestWithParams:@"get_account_expiration"
withParams:@[ phoneNumber,
password,
@"" ] // keep @"" mandatory for optional domain
onSuccess:^(NSString *response) {
if (response) {
LOGI(@"get_account_expiration callback - response: %@", response);
if ([response containsString:@"ERROR_NO_EXPIRATION"]) {
expiryTime = 0;
}
}
}];
return TRUE;
} else {
LOGW(@"No SIP URI configured, can't get account expiration date.");
return FALSE;
}
}
#pragma mark Other
#else
- (void)postNotificationforStatus:(IAPPurchaseNotificationStatus)status {

View file

@ -55,12 +55,12 @@ UIImageView *infoImage;
- (IBAction)onDetails:(id)event {
NSString *msg = [NSString stringWithFormat:@"Product - %@", self.nameLabel.text];
UIAlertView *descriptionView = [[UIAlertView alloc] initWithTitle:msg
message:self.descriptionLabel.text
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[descriptionView show];
UIAlertView *descriptionAlertView = [[UIAlertView alloc] initWithTitle:msg
message:self.descriptionLabel.text
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[descriptionAlertView show];
}
- (void)touchUp:(id)sender {