yandex-money/yandex-money-sdk-php
Composer 安装命令:
composer require yandex-money/yandex-money-sdk-php
包简介
Yandex.Money API SDK for PHP
README 文档
README
PHP Yandex.Money API SDK
Requirements
PHP 5.3 or above
Links
- Yandex.Money API page: Ru, En
- sample app
Getting started
Installation
- Add
"yandex-money/yandex-money-sdk-php": "3.0.*"tocomposer.jsonof your application. Or clone repo to your project. - If you are using composer - simply use
require_once 'vendor/autoload.php';otherwise paste following code// For payments from the Yandex.Money wallet require_once '/path/to/cloned/repo/lib/api.php'; // For payments from bank cards without authorization require_once '/path/to/cloned/repo/lib/external_payment.php';
Payments from the Yandex.Money wallet
Using Yandex.Money API requires following steps
-
Obtain token URL and redirect user's browser to Yandex.Money service. Note:
client_id,redirect_uri,client_secretare constants that you get, when register app in Yandex.Money API.use \YandexMoney\API; $auth_url = API::buildObtainTokenUrl($client_id, $redirect_uri, $scope);
-
After that, user fills Yandex.Money HTML form and user is redirected back to
REDIRECT_URI?code=CODE. -
You should immediately exchange
CODEwithACCESS_TOKEN.$access_token_response = API::getAccessToken($client_id, $code, $redirect_uri, $client_secret=NULL); if(property_exists($access_token_response, "error")) { // process error } $access_token = $access_token_response->access_token;
-
Now you can use Yandex.Money API.
$api = new API($access_token); // get account info $acount_info = $api->accountInfo(); // check status // get operation history with last 3 records $operation_history = $api->operationHistory(array("records"=>3)); // check status // make request payment $request_payment = $api->requestPayment(array( "pattern_id" => "p2p", "to" => $money_wallet, "amount_due" => $amount_due, "comment" => $comment, "message" => $message, "label" => $label, )); // check status // call process payment to finish payment $process_payment = $api->processPayment(array( "request_id" => $request_payment->request_id, ));
Payments from bank cards without authorization
-
Fetch instantce-id(ussually only once for every client. You can store result in DB).
use \YandexMoney\ExternalPayment; $response = ExternalPayment::getInstanceId($client_id); if($response->status == "success") { $instance_id = $response->instance_id; } else { // throw exception with $response->error message }
-
Make request payment
// make instance $external_payment = ExternalPayment($instance_id); $payment_options = array( // pattern_id, etc.. ); $response = $external_payment->request($payment_options); if($response->status == "success") { $request_id = $response->request_id; } else { // throw exception with $response->message }
-
Process the request with process-payment.
$process_options = array( "request_id" => $request_id // other params.. ); $result = $external_payment->process($process_options); // process $result according to docs
Side notes
- Library throws exceptions in case of
- response status isn't equal 2**
- I/O error(see requests)
- If you register app and fill
CLIENT_SECRETentry then you should provide$client_secretexplicitly where$client_secret=NULL - You should wrap all passed boolean values in quotes(because php converts them to numbers otherwise). For example:
API($access_token).requestPayment(array( test_payment => "true", // other params ));
Running tests
- Clone this repo.
- Install composer
- Run
composer install - Make sure
phpunitexecutable is present in your$PATH - Create
tests/constants.phpwithCLIENT_ID,CLIENT_SECRETandACCESS_TOKENconstants. - Run tests
phpunit --bootstrap vendor/autoload.php tests/
yandex-money/yandex-money-sdk-php 适用场景与选型建议
yandex-money/yandex-money-sdk-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 168.84k 次下载、GitHub Stars 达 105, 最近一次更新时间为 2014 年 03 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「payment」 「money」 「sdk」 「yandex」 「yandex.money」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 yandex-money/yandex-money-sdk-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 yandex-money/yandex-money-sdk-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 yandex-money/yandex-money-sdk-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Beyonic PHP Library
The Payum Yandex Money gateway
Alfabank REST API integration
Handles currency for Laravel 5.8
Yii 2 package for sprintpay gateway
Money lib for RUR currency only
统计信息
- 总下载量: 168.84k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 106
- 点击次数: 22
- 依赖项目数: 7
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-03-12