// Ziraat A hesabı ile (varsayılan)
$virtualPos = new VirtualPos();
$response = $virtualPos->pay3D($request);
// Ziraat B hesabı ile
$virtualPos = new VirtualPos(null, 'ziraat_b');
$response = $virtualPos->pay3D($request);
// veya withAccount metodu ile
$virtualPos = new VirtualPos();
$virtualPosZiraatB = $virtualPos->withAccount('ziraat_b');
$response = $virtualPosZiraatB->pay3D($request);
namespace App\Controllers;
use Yakupeyisan\CodeIgniter4\VirtualPos\VirtualPos;
use Yakupeyisan\CodeIgniter4\VirtualPos\Models\PaymentRequest;
class Payment extends BaseController
{
public function pay()
{
$virtualPos = new VirtualPos();
$request = new PaymentRequest(
orderId: 'ORDER-' . time(),
amount: 100.00,
cardNumber: $this->request->getPost('card_number'),
cardHolderName: $this->request->getPost('card_holder_name'),
cardExpiryMonth: $this->request->getPost('card_expiry_month'),
cardExpiryYear: $this->request->getPost('card_expiry_year'),
cardCvv: $this->request->getPost('card_cvv')
);
$request->setCustomer(
name: $this->request->getPost('customer_name'),
email: $this->request->getPost('customer_email'),
phone: $this->request->getPost('customer_phone')
);
$response = $virtualPos->pay3D($request);
if ($response->status === 'pending') {
return view('payment_form', ['htmlContent' => $response->htmlContent]);
}
return redirect()->back()->with('error', $response->errorMessage);
}
public function callback()
{
$virtualPos = new VirtualPos();
$response = $virtualPos->handleCallback($this->request->getPost());
if ($response->success) {
// Ödeme başarılı - veritabanına kaydet
return redirect()->to('/payment/success');
}
return redirect()->to('/payment/fail');
}
}