2018-01-10 08:21:52 +00:00
# inAppPurchase
2017-11-30 13:27:33 +00:00
2018-01-10 07:55:49 +00:00
> In-app purchases on Mac App Store.
2018-01-10 07:37:05 +00:00
2018-01-10 07:55:49 +00:00
Process: [Main ](../glossary.md#main-process )
## Events
The `inAppPurchase` module emits the following events:
2018-01-10 08:18:23 +00:00
### Event: 'transactions-updated'
2018-01-10 07:55:49 +00:00
2018-01-10 08:18:23 +00:00
Emitted when one or more transactions have been updated.
2018-01-10 07:55:49 +00:00
Returns:
* `event` Event
2018-04-09 20:58:10 +00:00
* `transactions` Transaction[] - Array of [`Transaction` ](structures/transaction.md ) objects.
2017-11-30 13:27:33 +00:00
2018-01-10 07:37:05 +00:00
## Methods
2017-11-30 13:27:33 +00:00
The `inAppPurchase` module has the following methods:
2022-12-12 18:11:48 +00:00
### `inAppPurchase.purchaseProduct(productID[, opts])`
2019-03-13 20:56:01 +00:00
2022-12-12 18:11:48 +00:00
* `productID` string
* `opts` Integer | Object (optional) - If specified as an integer, defines the quantity.
* `quantity` Integer (optional) - The number of items the user wants to purchase.
* `username` string (optional) - The string that associates the transaction with a user account on your service (applicationUsername).
2019-03-13 20:56:01 +00:00
2021-11-16 04:13:18 +00:00
Returns `Promise<boolean>` - Returns `true` if the product is valid and added to the payment queue.
2018-03-02 13:25:37 +00:00
You should listen for the `transactions-updated` event as soon as possible and certainly before you call `purchaseProduct` .
2017-11-30 13:27:33 +00:00
2019-03-13 20:56:01 +00:00
### `inAppPurchase.getProducts(productIDs)`
2021-11-16 04:13:18 +00:00
* `productIDs` string[] - The identifiers of the products to get.
2019-03-13 20:56:01 +00:00
Returns `Promise<Product[]>` - Resolves with an array of [`Product` ](structures/product.md ) objects.
2018-04-05 06:33:13 +00:00
Retrieves the product descriptions.
2017-11-30 13:27:33 +00:00
### `inAppPurchase.canMakePayments()`
2021-11-16 04:13:18 +00:00
Returns `boolean` - whether a user can make a payment.
2019-12-17 15:07:11 +00:00
### `inAppPurchase.restoreCompletedTransactions()`
Restores finished transactions. This method can be called either to install purchases on additional devices, or to restore purchases for an application that the user deleted and reinstalled.
[The payment queue ](https://developer.apple.com/documentation/storekit/skpaymentqueue?language=objc ) delivers a new transaction for each previously completed transaction that can be restored. Each transaction includes a copy of the original transaction.
2017-11-30 13:27:33 +00:00
### `inAppPurchase.getReceiptURL()`
2021-11-16 04:13:18 +00:00
Returns `string` - the path to the receipt.
2018-04-05 06:33:13 +00:00
### `inAppPurchase.finishAllTransactions()`
Completes all pending transactions.
### `inAppPurchase.finishTransactionByDate(date)`
2021-11-16 04:13:18 +00:00
* `date` string - The ISO formatted date of the transaction to finish.
2018-04-05 06:33:13 +00:00
Completes the pending transactions corresponding to the date.