markette/gopay-simple

此包已被废弃且不再维护。未建议替代包。

GoPay 内嵌简单支付网关

v1.0 2016-04-03 11:19 UTC

This package is auto-updated.

Last update: 2020-02-05 22:56:13 UTC


README

Build Status Code coverage Downloads latests Latest stable HHVM Status

讨论

Join the chat at https://gitter.im/Markette/Gopay

目标

一个类规则所有,最佳方法是 $gopay->call()

安装

$ composer require markette/gopay-simple

需求

您需要 GoIDClientIDClientSecret

用法

这个超级简单的类提供了一些方法,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 的示例。

测试

  1. tests/buildin/run.sh 启动内置服务器
  2. tests/tester 运行测试器