opsway / yesbank-api
YesBank API 的 PHP SDK
0.4.8
2020-08-17 09:02 UTC
Requires
- php: ^7.4
- ext-json: *
- guzzlehttp/guzzle: ^6.5
- netresearch/jsonmapper: ^1.6 || ^2.0
Requires (Dev)
README
安装
推荐通过 Composer 来安装此扩展。
运行以下命令:
composer require opsway/yesbank-api
使用方法
首先,您应该使用自己的参数准备 API 客户端
use OpsWay\YesBank\Api; use OpsWay\YesBank\Config; use OpsWay\YesBank\Transport\HttpTransport; use OpsWay\YesBank\Transport\MockTransport; // Prepare config for connection $config = new Config('<IS_PROD_MODE>', '<CLIENT_ID>', '<SECRET>', '<CUSTOMER_ID>', '<APP_ID>'); $config->setBasicAuthLogin('<BASIC_AUTH_LOGIN>'); // Optional $config->setBasicAuthPassword('<BASIC_AUTH_PASSWORD>'); // Optional // Add certificate and private key (optional) $config->setSslCert('/path/to/your.crt'); $config->setSslKey('/path/to/your.key'); // Add CA certificate (optional) $config->setCaCert('/path/to/cainfo.crt'); $transport = new HttpTransport($config); // or you can use mocked transport // $transport = new MockTransport($jsonResponse); $api = new Api($transport);
资金转账
获取余额
$balance = $api->fundTransfer()->getBalance('<ACCOUNT_NUMBER>'); // Result: OpsWay\YesBank\Api\Dto\GetBalanceResultDto Object // ( // [version] => 2.0 // [accountCurrencyCode] => INR // [accountBalanceAmount] => 6.0793648885606E+21 // [lowBalanceAlert] => false // )
开始转账
use OpsWay\YesBank\Api\Dto\BeneficiaryDto; $beneficiary = new BeneficiaryDto; $beneficiary->code = '<BENEFICIARY_CODE>'; $transfer = $api->fundTransfer()->startTransfer( '<UNIQUE_REQUEST_NUMBER>', '<ACCOUNT_NUMBER>', $beneficiary, '<AMOUNT>', '<TRANSFER_TYPE>', // Optional, default 'ANY' '<CURRENCY_CODE>', // Optional, default 'INR' '<PURPOSE_CODE>', // Optional, default 'NODAL' '<REMITTER_INFO>', // Optional, default 'FUND TRANSFER' ); // Result: OpsWay\YesBank\Api\Dto\StartTransferResultDto Object // ( // [version] => 1 // [requestReferenceNo] => <UNIQUE_REQUEST_NUMBER> // [uniqueResponseNo] => 2d96179c4b7e11ea8e950a0028fd0000 // [attemptNo] => 1 // [reqTransferType] => ANY // [statusCode] => AS // )
获取转账状态
$status = $api->fundTransfer()->getTransferStatus('<UNIQUE_REQUEST_NUMBER>'); // Result: OpsWay\YesBank\Api\Dto\GetTransferStatusResultDto Object // ( // [version] => 2.0 // [transferType] => ANY // [reqTransferType] => <TRANSFER_TYPE> // [transactionDate] => DateTime('2020-02-10 02:16:43.000000') // // [transferAmount] => <AMOUNT> // [transferCurrencyCode] => <CURRENCY_CODE> // [transactionStatus] => OpsWay\YesBank\Api\Dto\TransactionStatusDto Object // ( // [statusCode] => FAILED // [subStatusCode] => ns:E6003 // [bankReferenceNo] => // [beneficiaryReferenceNo] => // ) // )
维护收款人信息
一些代码准备
// Prepare bank and beneficiary use OpsWay\YesBank\Api\Dto\BankDto; use OpsWay\YesBank\Api\Dto\BeneficiaryDto; $beneficiary = new BeneficiaryDto; $beneficiary->code = '<BENEFICIARY_CODE>'; $beneficiary->name = '<BENEFICIARY_NAME>'; $beneficiary->type = '<BENEFICIARY_TYPE>'; $beneficiary->accountNo = '<BENEFICIARY_ACCOUNT_NO>'; $bank = new BankDto(); $bank->name = '<BANK_NAME>'; $bank->ifscCode = '<BANK_IFSC_CODE>'; // You can change some transport config params (optional) $api->getTransport()->getConfig()->setBasicAuthLogin('<BASIC_AUTH_LOGIN>'); $api->getTransport()->getConfig()->setBasicAuthPassword('<BASIC_AUTH_PASSWORD>');
添加收款人
$result = $api->maintainBeneficiary()->add('<ACCOUNT_NUMBER>', $beneficiary, $bank, '<AMOUNT>', '<CURRENCY_CODE>', '<PAYMENT_TYPE>'); // Result: OpsWay\YesBank\Api\Dto\MaintainBeneficiaryResponseDto Object // ( // [requestStatus] => SUCCESS // [custId] => <CUSTOMER_ID> // [paymentType] => <PAYMENT_TYPE> // [srcAccountNo] => <ACCOUNT_NUMBER> // [beneficiaryCd] => <BENEFICIARY_CODE> // [beneName] => <BENEFICIARY_NAME> // [beneType] => <BENEFICIARY_TYPE> // [beneAccountNo] => <BENEFICIARY_ACCOUNT_NO> // [bankName] => <BANK_NAME> // [ifscCode] => <BANK_IFSC_CODE> // [transactionLimit] => <AMOUNT> // [currencyCd] => <CURRENCY_CODE> // [action] => ADD // [error] => stdClass Object() // )
修改收款人
$result = $api->maintainBeneficiary()->modify('<ACCOUNT_NUMBER>', $beneficiary, $bank, '<AMOUNT>', '<CURRENCY_CODE>', '<PAYMENT_TYPE>'); // Result: OpsWay\YesBank\Api\Dto\MaintainBeneficiaryResponseDto Object // ( // [requestStatus] => SUCCESS // [reqRefNo] => <REQUEST_REFERENCE_NO> // [custId] => <CUSTOMER_ID> // [paymentType] => <PAYMENT_TYPE> // [srcAccountNo] => <ACCOUNT_NUMBER> // [beneficiaryCd] => <BENEFICIARY_CODE> // [beneName] => <BENEFICIARY_NAME> // [beneType] => <BENEFICIARY_TYPE> // [beneAccountNo] => <BENEFICIARY_ACCOUNT_NO> // [bankName] => <BANK_NAME> // [ifscCode] => <BANK_IFSC_CODE> // [transactionLimit] => <AMOUNT> // [currencyCd] => <CURRENCY_CODE> // [action] => MODIFY // [error] => stdClass Object() // )
验证收款人
$result = $api->maintainBeneficiary()->verify('<ACCOUNT_NUMBER>', '<BENEFICIARY_CODE>', '<PAYMENT_TYPE>'); // Result: OpsWay\YesBank\Api\Dto\MaintainBeneficiaryResponseDto Object // ( // [requestStatus] => SUCCESS // [reqRefNo] => <REQUEST_REFERENCE_NO> // [custId] => <CUSTOMER_ID> // [paymentType] => <PAYMENT_TYPE> // [srcAccountNo] => <ACCOUNT_NUMBER> // [beneficiaryCd] => <BENEFICIARY_CODE> // [beneName] => <BENEFICIARY_NAME> // [beneType] => <BENEFICIARY_TYPE> // [beneAccountNo] => <BENEFICIARY_ACCOUNT_NO> // [bankName] => <BANK_NAME> // [ifscCode] => <BANK_IFSC_CODE> // [transactionLimit] => <AMOUNT> // [currencyCd] => <CURRENCY_CODE> // [action] => Verify // [error] => stdClass Object() // )
禁用收款人
注意:要启用禁用的收款人,请对收款人执行 修改
操作。
$result = $api->maintainBeneficiary()->disable('<ACCOUNT_NUMBER>', '<BENEFICIARY_CODE>', '<PAYMENT_TYPE>'); // Result: OpsWay\YesBank\Api\Dto\MaintainBeneficiaryResponseDto Object // ( // [requestStatus] => SUCCESS // [reqRefNo] => <REQUEST_REFERENCE_NO> // [custId] => <CUSTOMER_ID> // [paymentType] => <PAYMENT_TYPE> // [srcAccountNo] => <ACCOUNT_NUMBER> // [beneficiaryCd] => <BENEFICIARY_CODE> // [action] => DISABLE // [error] => stdClass Object() // )
许可证
MIT 许可证 (MIT)。更多信息请参阅 许可证文件。