PHP code example of bijay-x / laravel-in-app-purchase
1. Go to this page and download the library: Download bijay-x/laravel-in-app-purchase library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bijay-x / laravel-in-app-purchase example snippets
use Bijay\Iap\Facades\Iap;
// Verify Apple purchase
$result = Iap::verify('ios', [
'receipt_data' => $receiptData,
'password' => config('iap.apple.shared_secret'), // Optional, uses config if not provided
]);
// Verify Google purchase
$result = Iap::verify('android', [
'package_name' => 'com.yourcompany.yourapp',
'product_id' => 'premium_subscription',
'purchase_token' => $purchaseToken,
'is_subscription' => true, // true for subscriptions, false for one-time purchases
]);
// Check result
if ($result->valid && $result->isActive()) {
// Subscription is active
echo "Product: {$result->productId}";
echo "Expires: {$result->expiresAt}";
echo "Status: {$result->status}";
}
use Bijay\Iap\Services\IapManager;
class SubscriptionController extends Controller
{
public function __construct(
protected IapManager $iapManager
) {}
public function verify(Request $request)
{
$result = $this->iapManager->verify(
$request->input('platform'),
$request->input('payload')
);
return response()->json($result->toArray());
}
}
$result = Iap::verify('ios', $payload);
// Check if valid
if ($result->valid) { ... }
// Check if active
if ($result->isActive()) { ... }
// Check if expired
if ($result->isExpired()) { ... }
// Get properties
$result->status; // 'active', 'expired', 'cancelled'
$result->expiresAt; // Carbon instance or null
$result->platform; // 'ios' or 'android'
$result->productId; // Product identifier
$result->originalTransactionId; // Original transaction ID
$result->rawData; // Raw response from platform
// Convert to array
$array = $result->toArray();
// In routes/api.php or your service provider
Route::prefix('iap')->middleware(['auth:sanctum'])->group(function () {
Route::post('/verify', [VerifyPurchaseController::class, 'verify']);
});