|
Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /home/matalashes/www/kite.mata-lashes.com/vendor/xendit/xendit-php/examples/ |
Upload File : |
<?php
/**
* DirectDebitExample.php
* php version 7.4.3
*
* @category Example
* @package Xendit/Examples
* @author Glenda <glenda@xendit.co>
* @license https://opensource.org/licenses/MIT MIT License
* @link https://api.xendit.co
*/
use Xendit\Xendit;
require 'vendor/autoload.php';
Xendit::setApiKey('SECRET_API_KEY');
$customerParams = [
'reference_id' => '' . time(),
'given_names' => 'customer 1',
'email' => 'customer@website.com',
'mobile_number' => '+6281212345678',
'description' => 'dummy customer',
'middle_name' => 'middle',
'surname' => 'surname',
'addresses' => [
[
'country' => 'ID',
'street_line1' => 'Jl. 123',
'street_line2' => 'Jl. 456',
'city' => 'Jakarta Selatan',
'province' => 'DKI Jakarta',
'state' => '-',
'postal_code' => '12345'
]
],
'metadata' => [
'meta' => 'data'
]
];
$customer = \Xendit\Customers::createCustomer($customerParams);
$linkedAccountTokenizationParams = [
'customer_id' => $customer['id'],
'channel_code' => 'DC_BRI',
'properties' => [
'account_mobile_number' => '+62818555988',
'card_last_four' => '8888',
'card_expiry' => '06/24',
'account_email' => 'test.email@xendit.co'
],
'metadata' => [
'meta' => 'data'
]
];
echo "Initializing linked account tokenization...\n";
$initializeTokenization = \Xendit\DirectDebit::initializeLinkedAccountTokenization(
$linkedAccountTokenizationParams
);
var_dump($initializeTokenization);
$validateOTPForLinkedAccountParams = [
'otp_code' => '333000'
];
echo "Validating OTP for linked account token...\n";
$validateOTPForLinkedAccount = \Xendit\DirectDebit::validateOTPForLinkedAccount(
$initializeTokenization['id'],
$validateOTPForLinkedAccountParams
);
var_dump($validateOTPForLinkedAccount);
echo "Retrieving accessible linked accounts...\n";
$retrieveLinkedAccounts = \Xendit\DirectDebit::retrieveAccessibleLinkedAccounts(
$initializeTokenization['id']
);
var_dump($retrieveLinkedAccounts);
echo "Unbinding linked account token...\n";
$unbindLinkedAccountToken = \Xendit\DirectDebit::unbindLinkedAccountToken(
$initializeTokenization['id']
);
var_dump($unbindLinkedAccountToken);
$createPaymentMethodParams = [
'customer_id' => $customer['id'],
'type' => 'DEBIT_CARD',
'properties' => [
'id' => $retrieveLinkedAccounts[0]['id']
],
'metadata' => [
'meta' => 'data'
]
];
echo "Creating payment method...\n";
$createPaymentMethod = \Xendit\DirectDebit::createPaymentMethod(
$createPaymentMethodParams
);
var_dump($createPaymentMethod);
echo "Retrieving payment methods by customer ID...\n";
$getPaymentMethods = \Xendit\DirectDebit::getPaymentMethodsByCustomerID(
$customer['id']
);
var_dump($getPaymentMethods);
$createDirectDebitPaymentParams = [
'reference_id' => 'test-direct-debit-ref-0101',
'payment_method_id' => $createPaymentMethod['id'],
'currency' => 'IDR',
'amount' => 15000,
'callback_url' => 'http://webhook.site/',
'enable_otp' => true,
'description' => 'test description',
'basket' => [
[
'reference_id' => 'basket-product-ref-id',
'name' => 'product name',
'category' => 'mechanics',
'market' => 'ID',
'price' => 50000,
'quantity' => 5,
'type' => 'product type',
'sub_category' => 'product sub category',
'description' => 'product description',
'url' => 'https://product.url'
]
],
'device' => [
'id' => 'device_id',
'ip_address' => '0.0.0.0',
'ad_id' => 'ad-id',
'imei' => '123a456b789c'
],
'success_redirect_url' => 'https://success-redirect.url',
'failure_redirect_url' => 'https://failure-redirect.url',
'metadata' => [
'meta' => 'data'
],
'Idempotency-key' => '' . time()
];
echo "Creating direct debit payment...\n";
$createDDP = \Xendit\DirectDebit::createDirectDebitPayment(
$createDirectDebitPaymentParams
);
var_dump($createDDP);
$validateOTPForDirectDebitPaymentParams = [
'otp_code' => '222000'
];
echo "Validating OTP for direct debit payment...\n";
$validateOTPForDDP = \Xendit\DirectDebit::validateOTPForDirectDebitPayment(
$createDDP['id'],
$validateOTPForDirectDebitPaymentParams
);
var_dump($validateOTPForDDP);
echo "Retrieving direct debit payment by ID...\n";
$getDDPByID = \Xendit\DirectDebit::getDirectDebitPaymentByID(
$createDDP['id']
);
var_dump($getDDPByID);
echo "Retrieving direct debit payment by reference ID...\n";
$getDDPByReferenceID = \Xendit\DirectDebit::getDirectDebitPaymentByReferenceID(
$createDDP['reference_id']
);
var_dump($getDDPByReferenceID);