سرویس کیف پول
سرویس کیف پول امکان مدیریت موجودی، تراکنشها و بازپرداختهای کاربران را فراهم میکند. این سرویس مجموعهای کامل از ابزارها برای انجام عملیات مالی ارائه میدهد — شامل دریافت موجودی کیف پول و تاریخچه تراکنشها، ایجاد و مدیریت هزینهها، پردازش بازپرداختها، و اجرای عملیات مرتبط با اعتبار.
فهرست مطالب
متدهای کیف پول
متد | توضیحات | پارامترها |
---|---|---|
getBalance() | دریافت موجودی کاربر | userId , filters |
getTransactions() | دریافت تاریخچه تراکنشها | userId , page , perPage |
createExpense() | ایجاد یک هزینه | userId , request |
createExpenseFromCredit() | ایجاد هزینه از اعتبار خاص | userId , creditId , request |
getExpense() | دریافت جزئیات هزینه | userId , expenseId |
deleteExpense() | حذف/بازگشت هزینه | userId , expenseId , rollbackReasonId |
getExpenseByRef() | دریافت هزینه براساس مرجع | userId , reasonId , referenceId |
deleteExpenseByRef() | حذف هزینه براساس مرجع | userId , reasonId , referenceId , rollbackReasonId |
createRefund() | پردازش بازپرداخت | request |
canRollbackRefund() | بررسی امکان بازگشت بازپرداخت | refundReason , refundReferenceId |
rollbackRefund() | بازگشت بازپرداخت | request |
مثالها
پیکربندی اولیه
<?php
use Basalam\SDK\BasalamClient;
use Basalam\SDK\Auth\ClientCredentials;
$auth = new ClientCredentials(
clientId: 'your-client-id',
clientSecret: 'your-client-secret'
);
$client = new BasalamClient($auth);
توجه داشته باشید که برای ریکوئست به APIهای سرویس کیف پول باید از احراز هویت اعتبارنامه کلاینت (Client Credentials) استفاده کنید.
دریافت موجودی
<?php
use Basalam\SDK\Wallet\Models\BalanceFilter;
function getBalanceExample(): object
{
global $client;
$balance = $client->getBalance(
userId: 123,
filters: [
new BalanceFilter(
cash: true,
settleable: true,
vendor: false,
customer: true
)
]
);
return $balance;
}
دریافت تراکنشها
<?php
function getTransactionsExample(): object
{
global $client;
$transactions = $client->getTransactions(
userId: 123,
page: 1,
perPage: 20
);
foreach ($transactions->data as $transaction) {
echo "Transaction: {$transaction->time} - Amount: {$transaction->amount}\n";
}
return $transactions;
}
ایجاد هزینه
<?php
use Basalam\SDK\Wallet\Models\SpendCreditRequest;
function createExpenseExample(): object
{
global $client;
$expense = $client->createExpense(
userId: 123,
request: new SpendCreditRequest(
reasonId: 1,
referenceId: 456,
amount: 10000,
description: 'Payment for order #456',
types: [1, 2],
settleable: true,
references: [
'order_id' => 456,
'payment_method' => 1
]
)
);
return $expense;
}
ایجاد هزینه از اعتبار خاص
<?php
use Basalam\SDK\Wallet\Models\SpendSpecificCreditRequest;
function createExpenseFromCreditExample(): object
{
global $client;
$expense = $client->createExpenseFromCredit(
userId: 123,
creditId: 789,
request: new SpendSpecificCreditRequest(
reasonId: 1,
referenceId: 456,
amount: 5000,
description: 'Payment from specific credit',
settleable: true,
references: [
'order_id' => 456,
'credit_type' => 1
]
)
);
return $expense;
}
دریافت هزینه
<?php
function getExpenseExample(): object
{
global $client;
$expense = $client->getExpense(
userId: 123,
expenseId: 456
);
return $expense;
}
حذف هزینه
<?php
function deleteExpenseExample(): object
{
global $client;
$result = $client->deleteExpense(
userId: 123,
expenseId: 456,
rollbackReasonId: 2
);
return $result;
}
دریافت هزینه براساس مرجع
<?php
function getExpenseByRefExample(): ?object
{
global $client;
$expense = $client->getExpenseByRef(
userId: 123,
reasonId: 1,
referenceId: 456
);
if ($expense) {
echo "Found expense: {$expense->id}\n";
}
return $expense;
}
حذف هزینه براساس مرجع
<?php
function deleteExpenseByRefExample(): object
{
global $client;
$result = $client->deleteExpenseByRef(
userId: 123,
reasonId: 1,
referenceId: 456,
rollbackReasonId: 2
);
return $result;
}
ایجاد بازپرداخت
<?php
use Basalam\SDK\Wallet\Models\RefundRequest;
function createRefundExample(): object
{
global $client;
$refund = $client->createRefund(
request: new RefundRequest(
originalReason: 1,
originalReferenceId: 456,
reason: 2,
referenceId: 789,
amount: 5000,
description: 'Refund for cancelled order',
references: [
[
'reference_type_id' => 1,
'reference_id' => 456
]
]
)
);
return $refund;
}
بررسی امکان بازگشت بازپرداخت
<?php
function canRollbackRefundExample(): bool
{
global $client;
$canRollback = $client->canRollbackRefund(
refundReason: 2,
refundReferenceId: 789
);
return $canRollback;
}
بازگشت بازپرداخت
<?php
use Basalam\SDK\Wallet\Models\RollbackRefundRequest;
function rollbackRefundExample(): object
{
global $client;
$result = $client->rollbackRefund(
request: new RollbackRefundRequest(
refundReason: 2,
rollbackRefundReason: 3,
refundReferenceId: 789,
referenceId: 456,
description: 'Rollback refund due to error',
references: [
[
'reference_type_id' => 1,
'reference_id' => 456
]
]
)
);
return $result;
}
Last updated on