Updated README
This commit is contained in:
		
							parent
							
								
									2ff7a78a7b
								
							
						
					
					
						commit
						8996f5bd3b
					
				@ -7,8 +7,6 @@ cache:
 | 
			
		||||
matrix:
 | 
			
		||||
    fast_finish: true
 | 
			
		||||
    include:
 | 
			
		||||
        - php: 7.1
 | 
			
		||||
          env: LARAVEL='5.7.*' TESTBENCH='3.7.*' PHPENUM='1.*' PHPUNIT='7.*' COMPOSER_FLAGS='--prefer-stable'
 | 
			
		||||
         - php: 7.2
 | 
			
		||||
          env: LARAVEL='5.7.*' TESTBENCH='3.7.*' PHPENUM='1.*' PHPUNIT='7.*' COMPOSER_FLAGS='--prefer-stable'
 | 
			
		||||
        - php: 7.3
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										80
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										80
									
								
								README.md
									
									
									
									
									
								
							@ -1,10 +1,10 @@
 | 
			
		||||
# Handle Appstore server-to-server notifications for auto-renewable subscriptions
 | 
			
		||||
 | 
			
		||||
[](https://packagist.org/packages/app-vise/laravel-appstore-notifications)
 | 
			
		||||
[](https://packagist.org/packages/app-vise/laravel-appstore-server-notifications)
 | 
			
		||||
[](https://travis-ci.org/app-vise/laravel-appstore-notifications)
 | 
			
		||||
[](https://styleci.io/repos/215539443)
 | 
			
		||||
[](https://scrutinizer-ci.com/g/app-vise/laravel-appstore-notifications/?branch=master)
 | 
			
		||||
[](https://packagist.org/packages/app-vise/laravel-appstore-notifications)
 | 
			
		||||
[](https://packagist.org/packages/app-vise/laravel-appstore-server-notifications)
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
You can install this package via composer
 | 
			
		||||
@ -19,8 +19,84 @@ You have to publish the config file with:
 | 
			
		||||
```bash
 | 
			
		||||
php artisan vendor:publish --provider="Appvise\AppStoreNotifications\NotificationsServiceProvider" --tag="config" 
 | 
			
		||||
 ```
 | 
			
		||||
This is the config that will be published.
 | 
			
		||||
```php
 | 
			
		||||
return [
 | 
			
		||||
    /*
 | 
			
		||||
     * Apple will send the shared secret with the request that should match
 | 
			
		||||
     * the one you use when validating receipts.
 | 
			
		||||
     * https://developer.apple.com/documentation/storekit/in-app_purchase/enabling_server-to-server_notifications?language=objc#overview
 | 
			
		||||
     */
 | 
			
		||||
    'shared_secret' => env('APPLE_SHARED_SECRET'),
 | 
			
		||||
    /*
 | 
			
		||||
     * All the events that should be handeled by your application.
 | 
			
		||||
     * Typically you should uncomment all jobs
 | 
			
		||||
     *
 | 
			
		||||
     * You can find a list of all notification types here:
 | 
			
		||||
     * https://developer.apple.com/documentation/storekit/in-app_purchase/enabling_server-to-server_notifications?language=objc#3162176
 | 
			
		||||
     */
 | 
			
		||||
    'jobs' => [
 | 
			
		||||
        // 'initial_buy' => \App\Jobs\AppstoreNotifications\HandleInitialBuy::class,
 | 
			
		||||
        // 'cancel' => \App\Jobs\AppstoreNotifications\HandleCancellation::class,
 | 
			
		||||
        // 'renewal' => \App\Jobs\AppstoreNotifications\HandleRenewal::class,
 | 
			
		||||
        // 'interactive_renewal' => \App\Jobs\AppstoreNotifications\HandleInteractiveRenewal::class,
 | 
			
		||||
        // 'did_change_renewal_pref' => \App\Jobs\AppstoreNotifications\HandleDidChangeRenewalPreferences::class,
 | 
			
		||||
        // 'did_change_renewal_status' => \App\Jobs\AppstoreNotifications\HandleDidChangeRenewalStatus::class,
 | 
			
		||||
    ],
 | 
			
		||||
];
 | 
			
		||||
```
 | 
			
		||||
The shared secret should match the one you send to the store to validate receipts
 | 
			
		||||
 | 
			
		||||
This package logs all the incoming requests to the database so these steps are mandatory:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
php artisan vendor:publish --provider="Appvise\AppStoreNotifications\NotificationsServiceProvider" --tag="migrations"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You should run migrate next to create the apple_notifications table:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
php artisan migrate
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This packages registers a POST route (/apple/server/notifications) to the Webhookscontroller of this package
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
When there is an change in one of the subscriptions Apple will send a POST request to a configured endpoint.
 | 
			
		||||
[Follow this guide to configure the endpoint:](https://help.apple.com/app-store-connect/#/dev0067a330b)
 | 
			
		||||
 | 
			
		||||
This package will send a 200 response if you configured the right Job for the right Notification Type otherwise it will send a 500 back to Apple.
 | 
			
		||||
Apple will retry a couple of times more. The incoming payload is stored in the apple_notifications table.
 | 
			
		||||
 | 
			
		||||
### Handling incoming notifications via Jobs
 | 
			
		||||
```php
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\AppstoreNotifications;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Job;
 | 
			
		||||
use Appvise\AppStoreNotifications\Model\NotificationPayload;
 | 
			
		||||
 | 
			
		||||
class HandleInitialBuy extends Job
 | 
			
		||||
{
 | 
			
		||||
    public $payload;
 | 
			
		||||
 | 
			
		||||
    public function __construct(NotificationPayload $payload)
 | 
			
		||||
    {
 | 
			
		||||
        $this->payload = $payload;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Execute the job.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function handle()
 | 
			
		||||
    {
 | 
			
		||||
        // Do something that matches your business logic with $this->payload
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Changelog
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user