chfur / appgallery-iap
PHP AppGallery In-App Purchase implementation
Requires
- php: >=7.1
- ext-json: *
- ext-openssl: *
- nesbot/carbon: ^2.51
- phpseclib/phpseclib: ^3.0
- stafox/huawei-iap: 1.0.0
Requires (Dev)
- fakerphp/faker: ^1.15
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.3
- vimeo/psalm: ^4.9
This package is auto-updated.
Last update: 2024-12-10 18:05:16 UTC
README
About
AppGallery IAP is a PHP library to handle AppGallery purchase verification and Server Notifications. This package simplifies development by allowing you to work with ready-made data objects. The package also contains SHA256WithRSA signature verification with and without PSS filling.
Installation
Use composer
composer require chfur/appgallery-iap
Usage
The AppGallery IAP verifying Order and Subscription services can be found in the Package for verification. The implementation for the laravel framework can be found in the Laravel In-App purchase package.
Notification About a Key Subscription Event
You can use server notification handling "About a Key Subscription Event" as follow:
use CHfur\AppGallery\ServerNotifications\ServerNotification; use CHfur\AppGallery\ServerNotifications\SubscriptionNotification; use Huawei\IAP\Response\SubscriptionResponse; /** * @var array $data AppGallery ServerNotification request * @see https://developer.huawei.com/consumer/en/doc/development/HMSCore-References/api-notifications-about-subscription-events-0000001050706084 */ $data = []; $publicKey = 'Your AppGallery notification public key'; /** @var ServerNotification $serverNotification */ $serverNotification = ServerNotification::parse($data, $publicKey); if($serverNotification->isSubscriptionNotification()){ /** @var SubscriptionNotification $subscriptionNotification */ $subscriptionNotification = $serverNotification->getSubscriptionNotification(); $productId = $subscriptionNotification->getProductId(); $environment = $subscriptionNotification->getEnvironment(); /** @var SubscriptionResponse $subscriptionResponse */ $subscriptionResponse = $subscriptionNotification->getSubscriptionResponse(); $notificationTypeName = $subscriptionNotification->getNotificationTypeName(); switch ($notificationTypeName){ case 'RENEWAL': //implement your logic break; } }
Notification About a Key Event of Pending Purchase
And also you can use server notification handling "About a Key Event of Pending Purchase" as follow:
use CHfur\AppGallery\ServerNotifications\PendingPurchaseNotification; use CHfur\AppGallery\ServerNotifications\ServerNotification; /** * @var array $data AppGallery ServerNotification request * @see https://developer.huawei.com/consumer/en/doc/development/HMSCore-References/api-notifications-about-pending-payment-events-0000001230063777 */ $data = []; $publicKey = 'Your AppGallery notification public key'; /** @var ServerNotification $serverNotification */ $serverNotification = ServerNotification::parse($data, $publicKey); if($serverNotification->isPendingPurchaseNotification()){ /** @var PendingPurchaseNotification $pendingPurchaseNotification */ $pendingPurchaseNotification = $serverNotification->getPendingPurchaseNotification(); $productId = $pendingPurchaseNotification->getProductId(); $purchaseToken = $pendingPurchaseNotification->getPurchaseToken(); $isSuccessPayment = $pendingPurchaseNotification->getNotificationType(); //implement your logic }
License
The AppGallery IAP is an open-sourced software licensed under the MIT license.
TODO
- Implementing verification without third-party packages