2018-01-10 17:21:52 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# inAppPurchase
  
						 
					
						
							
								
									
										
										
										
											2017-11-30 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:55:49 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								>  In-app purchases on Mac App Store.
  
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:37:05 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:55:49 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Process: [Main ](../glossary.md#main-process )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Events
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The `inAppPurchase`  module emits the following events:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 17:18:23 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Event: 'transactions-updated'
  
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:55:49 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 17:18:23 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Emitted when one or more transactions have been updated.
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:55:49 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Returns:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `event`  Event 
						 
					
						
							
								
									
										
										
										
											2018-04-09 17:58:10 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  `transactions`  Transaction[] - Array of [`Transaction` ](structures/transaction.md ) objects. 
						 
					
						
							
								
									
										
										
										
											2017-11-30 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 16:37:05 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Methods
  
						 
					
						
							
								
									
										
										
										
											2017-11-30 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The `inAppPurchase`  module has the following methods:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-04 14:03:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### `inAppPurchase.purchaseProduct(productID[, quantity])`
  
						 
					
						
							
								
									
										
										
										
											2019-03-13 13:56:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `productID`  String - The identifiers of the product to purchase. (The identifier of `com.example.app.product1`  is `product1` ). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `quantity`  Integer (optional) - The number of items the user wants to purchase. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Returns `Promise<Boolean>`  - Returns `true`  if the product is valid and added to the payment queue.
							 
						 
					
						
							
								
									
										
										
										
											2018-03-02 14:25:37 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								You should listen for the `transactions-updated`  event as soon as possible and certainly before you call `purchaseProduct` .
							 
						 
					
						
							
								
									
										
										
										
											2017-11-30 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-03-13 13:56:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### `inAppPurchase.getProducts(productIDs)`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `productIDs`  String[] - The identifiers of the products to get. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Returns `Promise<Product[]>`  - Resolves with an array of [`Product` ](structures/product.md ) objects.
							 
						 
					
						
							
								
									
										
										
										
											2018-04-05 08:33:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Retrieves the product descriptions.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-30 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								### `inAppPurchase.canMakePayments()`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-17 07:07:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Returns `Boolean`  - whether a user can make a payment.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### `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 14:27:33 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### `inAppPurchase.getReceiptURL()`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-12-17 07:07:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Returns `String`  - the path to the receipt.
							 
						 
					
						
							
								
									
										
										
										
											2018-04-05 08:33:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### `inAppPurchase.finishAllTransactions()`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Completes all pending transactions.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### `inAppPurchase.finishTransactionByDate(date)`
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `date`  String - The ISO formatted date of the transaction to finish. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Completes the pending transactions corresponding to the date.