Improve in-app purchase for MacOS (#12464)

* Add methods to finish transactions

* Add a method to get the product descriptions from the App Store

* Improve the documentation of a transaction structure

* Add a tutorial for In App Purchase

* Fix typo in In-App Purchase tutorial

* Fix style of In-App Purchase files

* Fix In-App-Purchase product structure conversion in amr64

* Fix code style in In-App Purchase tutorial documentation

* Fix typos in In-App Purchase documentation

* Fix typo in In-App Purchase spec

* Slight style fixes
This commit is contained in:
Adrien Fery 2018-04-05 08:33:13 +02:00 committed by Cheng Zhao
parent 52b1065b3b
commit 5486a65702
13 changed files with 481 additions and 22 deletions

View file

@ -136,6 +136,34 @@ bool CanMakePayments() {
return [SKPaymentQueue canMakePayments];
}
void FinishAllTransactions() {
for (SKPaymentTransaction* transaction in SKPaymentQueue.defaultQueue
.transactions) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}
void FinishTransactionByDate(const std::string& date) {
// Create the date formatter.
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale* enUSPOSIXLocale =
[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
// Remove the transaction.
NSString* transactionDate = base::SysUTF8ToNSString(date);
for (SKPaymentTransaction* transaction in SKPaymentQueue.defaultQueue
.transactions) {
if ([transactionDate
isEqualToString:[dateFormatter
stringFromDate:transaction.transactionDate]]) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}
}
std::string GetReceiptURL() {
NSURL* receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
if (receiptURL != nil) {