markette / gopay-simple
此包已被废弃且不再维护。未建议替代包。
GoPay 内嵌简单支付网关
v1.0
2016-04-03 11:19 UTC
Requires
- php: >=5.6
- ext-curl: *
Requires (Dev)
- mockery/mockery: ~0.9.0
- nette/tester: ~1.5.0
This package is auto-updated.
Last update: 2020-02-05 22:56:13 UTC
README
讨论
目标
一个类规则所有,最佳方法是 $gopay->call()
。
安装
$ composer require markette/gopay-simple
需求
您需要 GoID、ClientID 和 ClientSecret。
- 网页 (https://www.gopaygate.com)
- 英文官方资源 (https://doc.gopay.com/en/)
- 捷克语官方资源 (https://doc.gopay.com/cs/)
用法
这个超级简单的类提供了一些方法,2个公开的和4个受保护的,以便于扩展/原型设计。
公开
call(string $method, string $endpoint, array $args = [])
:stdClass
setMode(int $gopay::DEV/PROD)
:void
$useragent
:PHP+Markette/GopaySimple/{VERSION}
$options
:[]
(cURL 选项)
受保护
authenticate(array $args)
:stdClass
(token)makeRequest(string $method, string $endpoint, array $args = [])
:string
getEndpoint(string $type)
:string
getEndpointUrl(string $uri)
:string
公共部分
use Markette\GopaySimple\GopaySimple; $gopay = new GopaySimple($clientId, $clientSecret); # For testing purpose $gopay->setMode($gopay::DEV);
授权(Oauth)
授权过程非常简单且自动。所以,您不需要做任何事情。
如果您真的需要覆盖授权,您必须扩展 GopaySimple
并直接调用 authenticate($args)
。
支付
POST+payments/payment
$response = $gopay->call('POST', 'payments/payment', [ 'payer' => [ 'default_payment_instrument' => 'BANK_ACCOUNT', 'allowed_payment_instruments' => ['BANK_ACCOUNT'], 'default_swift' => 'FIOBCZPP', 'allowed_swifts' => ['FIOBCZPP', 'BREXCZPP'], 'contact' => [ 'first_name' => 'Zbynek', 'last_name' => 'Zak', 'email' => 'zbynek.zak@gopay.cz', 'phone_number' => '+420777456123', 'city' => 'C.Budejovice', 'street' => 'Plana 67', 'postal_code' => '373 01', 'country_code' => 'CZE', ], ], 'target': ['type' => 'ACCOUNT', 'goid' => '_YOUR_GO_ID_', 'amount' => 150, 'currency' => 'CZK', 'order_number' => '001', 'order_description' => 'pojisteni01', 'items' => [ ['name' => 'item01', 'amount' => 50], ['name' => 'item02', 'amount' => 100], ], 'additional_params' => [ array('name' => 'invoicenumber', 'value' => '20160001') ], 'return_url' => 'http://www.your-url.tld/return', 'notify_url' => 'http://www.your-url.tld/notify', 'lang' => 'cs', ]);
GET+payments/payment/{id}
$response = $gopay->call('GET', 'payments/payment/{id}');
最佳实践
您应该在服务层中注入 GopaySimple
。并在为 目标 创建支付前配置 $args
。
GopayService 的示例。
测试
- 在
tests/buildin/run.sh
启动内置服务器 - 在
tests/tester
运行测试器