yandex-money / yandex-checkout-payout-sdk-php
此包已被废弃,不再维护。作者建议使用 yoomoney/yookassa-payout-sdk-php 包。
1.0.3
2020-09-22 14:59 UTC
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- ext-libxml: *
- ext-mbstring: *
- ext-openssl: *
- ext-simplexml: *
- psr/log: ^1.0
Requires (Dev)
- ext-xml: *
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ^4.8.35 || ^5.7
This package is auto-updated.
Last update: 2020-12-04 18:08:23 UTC
README
用于处理大量支付协议的客户端
功能
使用此 SDK 您可以
- 生成用于与 Яндекс.Касса交互的证书。
- 向个人转账至 Яндекс.Деньгах的电子钱包、手机号码、银行卡和账户(makeDeposition)。
- 检查向 Яндекс.Деньгах电子钱包转账的可能性(testDeposition)。
- 跟踪支付余额(balance)。
- 获取关于转账至银行账户、卡、手机失败的提醒(errorDepositionNotification)。
要求
PHP 5.6.0(及以上)带libcurl和libxml扩展
安装
使用以下三种方式之一安装 SDK
在命令行中使用 Composer
- 安装 Composer 包管理器。
- 在命令行中执行以下命令
composer require yandex-money/yandex-checkout-payout-sdk-php
在项目的 composer.json 文件中
- 在项目的 composer.json 文件中依赖列表中添加
"yandex-money/yandex-checkout-payout-sdk-php": "*"
行
...
"require": {
"php": ">=5.6.0",
"yandex-money/yandex-checkout-payout-sdk-php": "*"
...
- 更新项目依赖:在命令行中切换到 composer.json 文件所在的目录,并执行以下命令
composer update
- 在您的项目代码中引入 SDK 的自动加载文件
require __DIR__ . '/vendor/autoload.php';
手动安装
- 下载 Yandex.Checkout Payout API PHP Client Library 存档,解压它并将 lib 目录复制到您的项目中存放 SDK 的文件夹中。
- 在您的项目代码中引入 SDK 的自动加载文件
require __DIR__ . '/lib/autoload.php';
获取用于认证请求的证书
与 Яндекс.Касса交互需要获取证书。为此
- 创建私有密钥和证书签名请求(CSR)。
- 填写证书申请。
- 与 Яндекс.Касса交换数据。
步骤 1. 创建私有密钥和 CSR
使用 SDK 方法
- 导入用于创建 CSR 的类
use YandexCheckoutPayout\Client;
use YandexCheckoutPayout\Model\Organization;
- 创建一个包含申请数据的
Organization
类实例。所有数据都需要用拉丁字母输入。
$organization = new Organization();
$organization->setEmailAddress('test@mail.ru') //Адрес электронной почты
->setOrganizationName('ooo sdk.com') //Название вашей организации (латиницей)
->setCommonName('/business/test123'); //Имя сервера без пробелов, например название вашей организации; должно начинаться с «/business/»
- 创建 CSR 和私有密钥。
$client->createCsr($organization, './output/', '') //Укажите место, куда должны сохраниться файлы, и пароль для приватного ключа (при необходимости)
SDK 将生成私有密钥、CSR 和带电子签名的文本文件(用于后续步骤)。
通过控制台
- 在控制台中切换到包含 SDK 的项目文件夹。
cd <путь к SDK>
- 执行以下命令
php bin/yamoney get:csr
- 根据屏幕上的指示输入证书信息。请用拉丁字母输入文本。SDK 将生成私有密钥、CSR 和带电子签名的文本文件(用于后续步骤)。
步骤 2. 填写证书申请表
下载证书申请表,填写并打印。签名并盖章。扫描。
参数 | 说明 |
---|---|
CN | 必须与通用名称(例如,YOUR name)的值相匹配。例如,/business/predpriyatie。 |
证书请求电子签名 | 上一步骤中获得的内容的文本表示。 |
组织名称(拉丁字母) | 必须与组织名称(例如,company)[Internet Widgits Pty Ltd]的值相匹配。 |
申请原因 | 可能选项
|
联系人(姓名、电话、电子邮件) | 联系专家以解决关于颁发证书的问题。 |
步骤 3. 与雅虎钱包交换数据
通过电子邮件将证书请求文件(request.csr)和申请表扫描件发送给雅虎钱包的经理。经理将在2个工作日内回复带有证书的文件。证书的有效期为1年。
将获得的证书放置在您的服务器上
开始工作
- 确定您需要哪些类型的支付以及您是否想检查余额。
- 导入必需的类
use YandexCheckoutPayout\Client; use YandexCheckoutPayout\Request\Keychain;
- 导入解决您任务所需的类。
- 创建一个
Keychain
类的实例,传递公共密钥的路径、私有密钥的路径以及必要时私有密钥的密码。
$keychain = new Keychain('publicCert.cer', 'privateCert.pem', 'password');
- 创建一个
Client
类的实例,传递雅虎钱包个人账户中的网关标识符以及Keychain
类的实例。
$client = new Client('000000', $keychain);
- 调用所需的方法。有关进行支付的详细信息,请参阅支付操作
示例:向银行账户支付
// Импорт классов
use YandexCheckoutPayout\Client;
use YandexCheckoutPayout\Model\Recipient\BankAccountRecipient;
use YandexCheckoutPayout\Request\Keychain;
use YandexCheckoutPayout\Request\MakeDepositionRequest;
// Создание ключницы и экземпляра клиента
$keychain = new Keychain('./250000.cer', './privateKey.pem', 12345);
$client = new Client('250000', $keychain);
// Подготовка данных о получателе выплаты
$recipient = new BankAccountRecipient();
$recipient->setPdrLastName('Иванов')
->setPdrFirstName('Иван')
->setPdrMiddleName('Иванович')
->setDocNumber('1234567890')
->setPofOfferAccepted(true)
->setPdrDocIssueDate('01.02.2018')
->setSmsPhoneNumber('79000000000')
->setPaymentPurpose('Назначение выплаты')->setBankBIK(5435435435)->setBankCorAccount('');
// Проведение выплаты
$deposition = new MakeDepositionRequest();
$deposition->setDstAccount('25700120202056919')
->setAmount(100)
->setCurrency(CurrencyCode::RUB)
->setContract('test')
->setPaymentParams($recipient);
$client->createDeposition($deposition);