From 3e49e8ea626ea7bf58d04f8a65a4f80d4f969aaf Mon Sep 17 00:00:00 2001 From: Wan Zulkarnain Date: Thu, 14 May 2026 14:36:57 +0800 Subject: [PATCH 1/2] Fix v2.0.0 examples to use resource-based API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - create_purchase.php: \$chip->createPurchase() → \$chip->purchases->create() - get_purchase.php: \$chip->getPurchase() → \$chip->purchases->get() - payment_methods.php: \$chip->getPaymentMethods() → \$chip->paymentMethods->list('MYR') - public_key.php: \$chip->getPublicKey() → \$chip->publicKey->get() - webhook.php: \$chip->getPublicKey() → \$chip->publicKey->get() - callback.php: \$chip->getPublicKey() → \$chip->publicKey->get() - account_balance.php: \$chip->getBalance() → \$chip->account->balance() - client_crud.php: \$chip->createClient() → \$chip->clients->create(), etc. - statements.php: \$chip->listStatements() → \$chip->statements->list(), etc. - webhook_management.php: \$chip->listWebhooks() → \$chip->webhooks->list(), etc. - purchase_builder.php: fix to use actual PurchaseBuilder::create() API with real method names Co-Authored-By: Claude Opus 4.7 --- examples/api/account_balance.php | 2 +- examples/api/callback.php | 4 ++-- examples/api/client_crud.php | 6 +++--- examples/api/create_purchase.php | 2 +- examples/api/get_purchase.php | 2 +- examples/api/payment_methods.php | 2 +- examples/api/public_key.php | 2 +- examples/api/purchase_builder.php | 19 +++++++++++-------- examples/api/statements.php | 4 ++-- examples/api/webhook.php | 2 +- examples/api/webhook_management.php | 12 ++++++------ 11 files changed, 30 insertions(+), 27 deletions(-) diff --git a/examples/api/account_balance.php b/examples/api/account_balance.php index 274d647..9f17398 100644 --- a/examples/api/account_balance.php +++ b/examples/api/account_balance.php @@ -6,6 +6,6 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); -$balance = $chip->getBalance(); +$balance = $chip->account->balance(); echo "
" . json_encode($balance, JSON_PRETTY_PRINT) . "
"; diff --git a/examples/api/callback.php b/examples/api/callback.php index e2c268a..f6de369 100644 --- a/examples/api/callback.php +++ b/examples/api/callback.php @@ -6,8 +6,8 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); -# Use SDK instead of raw curl -$publicKey = $chip->getPublicKey(); +# Get public key via SDK +$publicKey = $chip->publicKey->get(); $post = file_get_contents('php://input'); $headers = getallheaders(); diff --git a/examples/api/client_crud.php b/examples/api/client_crud.php index 386a1f8..26b09f4 100644 --- a/examples/api/client_crud.php +++ b/examples/api/client_crud.php @@ -11,18 +11,18 @@ $client->email = 'client@example.com'; $client->full_name = 'John Doe'; -$created = $chip->createClient($client); +$created = $chip->clients->create($client); echo "

Created Client

"; echo "
" . json_encode($created, JSON_PRETTY_PRINT) . "
"; # Get all clients -$clients = $chip->getClients(); +$clients = $chip->clients->list(); echo "

All Clients

"; echo "
" . json_encode($clients, JSON_PRETTY_PRINT) . "
"; # Update client $clientId = $created->id; $client->full_name = 'Jane Doe'; -$updated = $chip->updateClient($clientId, $client); +$updated = $chip->clients->update($clientId, $client); echo "

Updated Client

"; echo "
" . json_encode($updated, JSON_PRETTY_PRINT) . "
"; diff --git a/examples/api/create_purchase.php b/examples/api/create_purchase.php index e1a676e..aa3cf4d 100644 --- a/examples/api/create_purchase.php +++ b/examples/api/create_purchase.php @@ -21,7 +21,7 @@ $purchase->failure_redirect = $config['basedUrl'] . '/api/redirect.php?success=0'; $purchase->success_callback = $config['basedUrl'] . '/api/callback.php'; -$result = $chip->createPurchase($purchase); +$result = $chip->purchases->create($purchase); if ($result && $result->checkout_url) { // Redirect user to checkout diff --git a/examples/api/get_purchase.php b/examples/api/get_purchase.php index e9c22d9..a6d1fb8 100644 --- a/examples/api/get_purchase.php +++ b/examples/api/get_purchase.php @@ -8,7 +8,7 @@ $purchaseId = ''; # ID of the purchase: $purchase->id; -$purchase = $chip->getPurchase($purchaseId); +$purchase = $chip->purchases->get($purchaseId); header('Content-Type: application/json'); echo json_encode($purchase, JSON_PRETTY_PRINT); diff --git a/examples/api/payment_methods.php b/examples/api/payment_methods.php index 0420e5c..6675b64 100644 --- a/examples/api/payment_methods.php +++ b/examples/api/payment_methods.php @@ -6,6 +6,6 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); -$methods = $chip->getPaymentMethods(); +$methods = $chip->paymentMethods->list('MYR'); echo "
" . json_encode($methods, JSON_PRETTY_PRINT) . "
"; diff --git a/examples/api/public_key.php b/examples/api/public_key.php index d11cca5..f1b6888 100644 --- a/examples/api/public_key.php +++ b/examples/api/public_key.php @@ -7,7 +7,7 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); # Get public key via SDK -$publicKey = $chip->getPublicKey(); +$publicKey = $chip->publicKey->get(); header('Content-Type: application/json'); echo json_encode(['public_key' => $publicKey]); diff --git a/examples/api/purchase_builder.php b/examples/api/purchase_builder.php index 83126df..9c30799 100644 --- a/examples/api/purchase_builder.php +++ b/examples/api/purchase_builder.php @@ -7,16 +7,19 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); # Use PurchaseBuilder for a simpler API -$purchase = \Chip\Builder\PurchaseBuilder::new() - ->withBrandId($config['brand_id']) - ->withProduct('Test Product', 100, 1) - ->withClient('test@example.com', 'John Doe') - ->withSuccessRedirect($config['basedUrl'] . '/api/redirect.php?success=1') - ->withFailureRedirect($config['basedUrl'] . '/api/redirect.php?success=0') - ->withSuccessCallback($config['basedUrl'] . '/api/callback.php') +$purchase = \Chip\Builder\PurchaseBuilder::create() + ->brandId($config['brand_id']) + ->currency('MYR') + ->language('en') + ->clientEmail('test@example.com') + ->clientFullName('John Doe') + ->addProduct('Test Product', 100) + ->successRedirect($config['basedUrl'] . '/api/redirect.php?success=1') + ->failureRedirect($config['basedUrl'] . '/api/redirect.php?success=0') + ->successCallback($config['basedUrl'] . '/api/callback.php') ->build(); -$result = $chip->createPurchase($purchase); +$result = $chip->purchases->create($purchase); echo "

Purchase Created via Builder

"; echo "
" . json_encode($result, JSON_PRETTY_PRINT) . "
"; diff --git a/examples/api/statements.php b/examples/api/statements.php index 435b2b0..a02d5cd 100644 --- a/examples/api/statements.php +++ b/examples/api/statements.php @@ -7,7 +7,7 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); # List all statements -$statements = $chip->listStatements(); +$statements = $chip->statements->list(); echo "

Statements

"; echo "
" . json_encode($statements, JSON_PRETTY_PRINT) . "
"; @@ -15,6 +15,6 @@ $statement = new \Chip\Model\CompanyStatement(); $statement->format = 'json'; -$scheduled = $chip->scheduleStatement($statement); +$scheduled = $chip->statements->schedule($statement); echo "

Scheduled Statement

"; echo "
" . json_encode($scheduled, JSON_PRETTY_PRINT) . "
"; diff --git a/examples/api/webhook.php b/examples/api/webhook.php index 57c1a3c..dae52aa 100644 --- a/examples/api/webhook.php +++ b/examples/api/webhook.php @@ -12,7 +12,7 @@ $xSignature = $headers['X-Signature']; # Get public key via SDK -$publicKey = $chip->getPublicKey(); +$publicKey = $chip->publicKey->get(); $verify = \Chip\ChipApi::verify($post, $xSignature, $publicKey); diff --git a/examples/api/webhook_management.php b/examples/api/webhook_management.php index 79cc8ef..b802f5a 100644 --- a/examples/api/webhook_management.php +++ b/examples/api/webhook_management.php @@ -7,22 +7,22 @@ $chip = new \Chip\ChipApi($config['brand_id'], $config['api_key'], $config['endpoint']); # List all webhooks -$webhooks = $chip->listWebhooks(); +$webhooks = $chip->webhooks->list(); echo "

Webhooks

"; echo "
" . json_encode($webhooks, JSON_PRETTY_PRINT) . "
"; # Create a webhook $webhook = new \Chip\Model\Webhook(); -$webhook->url = $config['basedUrl'] . '/api/webhook.php'; -$webhook->event_type = 'purchase.paid'; +$webhook->title = 'My Webhook'; +$webhook->callback = $config['basedUrl'] . '/api/webhook.php'; -$created = $chip->createWebhook($webhook); +$created = $chip->webhooks->create($webhook); echo "

Created Webhook

"; echo "
" . json_encode($created, JSON_PRETTY_PRINT) . "
"; # Update webhook $webhookId = $created->id; -$webhook->url = $config['basedUrl'] . '/api/callback.php'; -$updated = $chip->updateWebhook($webhookId, $webhook); +$webhook->callback = $config['basedUrl'] . '/api/callback.php'; +$updated = $chip->webhooks->update($webhookId, $webhook); echo "

Updated Webhook

"; echo "
" . json_encode($updated, JSON_PRETTY_PRINT) . "
"; From 8ca4fb06366cf63799d7bb20f84b212bf4167c54 Mon Sep 17 00:00:00 2001 From: Wan Zulkarnain Date: Thu, 14 May 2026 14:43:22 +0800 Subject: [PATCH 2/2] Add .gitattributes to exclude non-production files from composer dist --- .gitattributes | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..761130f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +/.github export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/examples export-ignore +/tests export-ignore +/phpstan.neon.dist export-ignore +/.php-cs-fixer.dist.php export-ignore +/MIGRATION.md export-ignore +/CHANGELOG.md export-ignore