diff --git a/atom/browser/api/atom_api_in_app_purchase.cc b/atom/browser/api/atom_api_in_app_purchase.cc index 6c9d37941897..9c10388bc6b0 100644 --- a/atom/browser/api/atom_api_in_app_purchase.cc +++ b/atom/browser/api/atom_api_in_app_purchase.cc @@ -40,6 +40,7 @@ struct Converter { dict.Set("transactionState", val.transactionState); dict.Set("errorCode", val.errorCode); dict.Set("errorMessage", val.errorMessage); + dict.Set("payment", val.payment); return dict.GetHandle(); } }; @@ -82,9 +83,8 @@ void InAppPurchase::PurchaseProduct(const std::string& product_id, } void InAppPurchase::OnTransactionUpdated( - const in_app_purchase::Payment& payment, const in_app_purchase::Transaction& transaction) { - Emit("transaction-updated", payment, transaction); + Emit("transaction-updated", transaction); } } // namespace api diff --git a/atom/browser/api/atom_api_in_app_purchase.h b/atom/browser/api/atom_api_in_app_purchase.h index 6ab25cb69f16..326c28ff0207 100644 --- a/atom/browser/api/atom_api_in_app_purchase.h +++ b/atom/browser/api/atom_api_in_app_purchase.h @@ -32,7 +32,6 @@ class InAppPurchase: public mate::EventEmitter, // TransactionObserver: void OnTransactionUpdated( - const in_app_purchase::Payment& payment, const in_app_purchase::Transaction& transaction) override; private: diff --git a/atom/browser/mac/in_app_purchase_observer.h b/atom/browser/mac/in_app_purchase_observer.h index 2e80cd48e9e5..6bec6c237d93 100644 --- a/atom/browser/mac/in_app_purchase_observer.h +++ b/atom/browser/mac/in_app_purchase_observer.h @@ -32,6 +32,7 @@ struct Transaction { int errorCode = 0; std::string errorMessage = ""; std::string transactionState = ""; + Payment payment; }; // --------------------------- Classes --------------------------- @@ -41,8 +42,7 @@ class TransactionObserver { TransactionObserver(); virtual ~TransactionObserver(); - virtual void OnTransactionUpdated(const Payment& payment, - const Transaction& transaction) = 0; + virtual void OnTransactionUpdated(const Transaction& transaction) = 0; private: InAppTransactionObserver* obeserver_; diff --git a/atom/browser/mac/in_app_purchase_observer.mm b/atom/browser/mac/in_app_purchase_observer.mm index 955c4a11350c..be9c4fa4c41a 100644 --- a/atom/browser/mac/in_app_purchase_observer.mm +++ b/atom/browser/mac/in_app_purchase_observer.mm @@ -18,8 +18,7 @@ namespace { using InAppTransactionCallback = - base::RepeatingCallback; + base::RepeatingCallback; } // namespace @@ -60,10 +59,6 @@ using InAppTransactionCallback = return; } - // Convert the payment. - in_app_purchase::Payment paymentStruct; - paymentStruct = [self skPaymentToStruct:transaction.payment]; - // Convert the transaction. in_app_purchase::Transaction transactionStruct; transactionStruct = [self skPaymentTransactionToStruct:transaction]; @@ -71,7 +66,7 @@ using InAppTransactionCallback = // Send the callback to the browser thread. content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::Bind(callback_, paymentStruct, transactionStruct)); + base::Bind(callback_, transactionStruct)); } /** @@ -97,10 +92,6 @@ using InAppTransactionCallback = - (in_app_purchase::Payment)skPaymentToStruct:(SKPayment*)payment { in_app_purchase::Payment paymentStruct; - if (payment == nil) { - return paymentStruct; - } - if (payment.productIdentifier != nil) { paymentStruct.productIdentifier = [payment.productIdentifier UTF8String]; } @@ -121,10 +112,6 @@ using InAppTransactionCallback = (SKPaymentTransaction*)transaction { in_app_purchase::Transaction transactionStruct; - if (transaction == nil) { - return transactionStruct; - } - if (transaction.transactionIdentifier != nil) { transactionStruct.transactionIdentifier = [transaction.transactionIdentifier UTF8String]; @@ -152,6 +139,10 @@ using InAppTransactionCallback = ] objectAtIndex:transaction.transactionState] UTF8String]; } + if (transaction.payment != nil) { + transactionStruct.payment = [self skPaymentToStruct:transaction.payment]; + } + return transactionStruct; } diff --git a/docs/api/in-app-purchase.md b/docs/api/in-app-purchase.md index 8c53832f827c..0dd1ea5fdfc2 100644 --- a/docs/api/in-app-purchase.md +++ b/docs/api/in-app-purchase.md @@ -15,9 +15,6 @@ Emitted when a transaction has been updated. Returns: * `event` Event -* `payment` Object - * `productIdentifier` String - * `quantity` Integer * `transaction` Object * `transactionIdentifier` String * `transactionDate` String @@ -25,6 +22,9 @@ Returns: * `transactionState` String - The transaction sate (`"purchasing"`, `"purchased"`, `"failed"`, `"restored"`, or `"deferred"`) * `errorCode` Integer * `errorMessage` String + * `payment` Object + * `productIdentifier` String + * `quantity` Integer ## Methods