wearesho-team/i-pay
Composer 安装命令:
composer require wearesho-team/i-pay
包简介
IPay integration (PHP)
README 文档
README
Installation
Using composer:
composer install wearesho-team/i-pay
Requirements
- PHP >= 7.1
- SimpleXML
Usage
Creating Payments
For configuring you application use ConfigInterface (implementation also available in Config class)
<?php use Wearesho\Bobra\IPay; $config = new IPay\Config($merchantId = 14, $merchantKey = 123456789, $merchantSecret = 987654321); $config->setMode(IPay\Config::MODE_REAL); // Switching to production API (default: test) // Note: you should use DI container to instantiate IPay\Client $client = new IPay\Client($config, new \GuzzleHttp\Client()); /** * Creating payment */ $payment = $client->createPayment( new IPay\UrlPair( 'http://ipay.ua/good', 'http://ipay.ua/bad' ), [ new IPay\Transaction( 100, // Operation ID 100.50, // Will be transformed into 10050 when requesting "Service Payment" ), ] ); $payment->getUrl(); // You should redirect user to this page to make payment /** * Competing payment */ $client->completePayment($paymentId = 3456); /** * Reversing payment */ $client->completePayment($paymentId = 3456, IPay\Client::ACTION_REVERSAL); // or $client->reversePayment($paymentId = 3456);
Handling notification
Implement controller using your framework
<?php namespace App; use Wearesho\Bobra\IPay; class Controller { public function actionIPay() { // You may handle as many merchant id as you want // just pass here configurations with different merchant IDs $configProvider = new IPay\Notification\ConfigProvider([ new IPay\Config(1, "key", "secret"), new IPay\Config(2, "another-key", "another-secret"), ]); $server = new IPay\Notification\Server($configProvider); $xml = $_POST['xml']; if (empty($xml)) { throw new \HttpException(400, "Missing XML"); } try { // Sign checking will be done automatically $payment = $server->handle($xml); } catch (IPay\Notification\InvalidBodyException | IPay\InvalidSignException $exception) { throw new \HttpException(400, $exception->getMessage(), 0, $exception); } catch (IPay\Notification\UnsupportedMerchantException $exception) { throw new \HttpException( 501, "Merchant ID {$exception->getMerchantId()} is not configured" ); } // do what you want with payment } }
License
MIT
wearesho-team/i-pay 适用场景与选型建议
wearesho-team/i-pay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 251 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 04 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 wearesho-team/i-pay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 wearesho-team/i-pay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 251
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-04-09