deniztezcan / omnipay-ideal
Omnipay PHP支付处理库的iDeal驱动程序
1.6
2022-03-14 08:26 UTC
Requires
- ext-openssl: *
- league/omnipay: ^3.2
- nesbot/carbon: 2.*
- spatie/array-to-xml: ^3
Requires (Dev)
- omnipay/tests: ^4
README
iDeal (PSP) 驱动程序,用于Omnipay PHP支付处理库
Omnipay 3.x 是一个与框架无关、多网关支付处理库,适用于PHP 5.6+
如果这个仓库为您节省了大量时间,请考虑赞助我 😀
目录
安装
Omnipay通过Composer安装。
composer require deniztezcan/omnipay-ideal:^1
列出iDeal发行商
use Omnipay\Omnipay; $gateway = Omnipay::create('iDeal'); $gateway->setAcquirer('YOUR_BANK'); $gateway->setMerchantId('MERCHANT_ID'); $gateway->setSubId('SUB_ID'); $gateway->setPrivateKeyPassphrase('PASSPHRASE'); $gateway->setPrivateKeyPath('PATH_TO_PRIVATE_KEY'); $gateway->setPrivateCerPath('PATH_TO_PRIVATE_CER'); $request = $gateway->fetchIssuers(); $response = $request->send();
这将为您提供一个Issuer
数组
$response->getIssuers();
进行支付
use Omnipay\Omnipay; $gateway = Omnipay::create('iDeal'); $gateway->setAcquirer('YOUR_BANK'); $gateway->setMerchantId('MERCHANT_ID'); $gateway->setSubId('SUB_ID'); $gateway->setPrivateKeyPassphrase('PASSPHRASE'); $gateway->setPrivateKeyPath('PATH_TO_PRIVATE_KEY'); $gateway->setPrivateCerPath('PATH_TO_PRIVATE_CER'); $request = $gateway->purchase(['issuer' => 'ISSUER', 'amount' => 99.99, 'currency' => 'EUR', 'returnUrl' => 'RETURN_URL', 'transactionId' => 'PURCHASE_ID', 'description' => 'DESCRIPTION']); $response = $request->send();
正确处理响应
if ($response->isRedirect()) { // redirect to offsite payment gateway $response->redirect(); } else { // payment failed: display message to customer echo $response->getConsumerMessage(); }
完成支付
use Omnipay\Omnipay; $gateway = Omnipay::create('iDeal'); $gateway->setAcquirer('YOUR_BANK'); $gateway->setMerchantId('MERCHANT_ID'); $gateway->setSubId('SUB_ID'); $gateway->setPrivateKeyPassphrase('PASSPHRASE'); $gateway->setPrivateKeyPath('PATH_TO_PRIVATE_KEY'); $gateway->setPrivateCerPath('PATH_TO_PRIVATE_CER'); $request = $gateway->completePurchase(['transactionReference' => 'TRANSACTION_REFERENCE']); $response = $request->send();
正确处理响应
if ($response->isSuccessful()) { // payment was successful: update database print_r($response); } else { // payment failed: display message to customer echo $response->getConsumerMessage(); }
支持
如果您在使用Omnipay时遇到一般性问题,我们建议您在Stack Overflow上发布。请务必添加omnipay标签,以便更容易找到。
如果您认为您发现了一个错误,请使用GitHub问题跟踪器报告,或者更好的方法是分叉库并提交pull request。