Contributte Gopay-simple

Website 🚀 contributte.org | Contact 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte

# Disclaimer

⚠️ This project is no longer being maintained. Please use contributte/gopay-inline (opens new window).
Composer markette/gopay-simple (opens new window)
Version
PHP
License

# Documentation

# Goal

One class rule-them-all, best way is $gopay->call().

# Install

composer require markette/gopay-simple
1

# Requirements

You need GoID, ClientID and ClientSecret.

# Usage

This super simple class provides a few methods, 2 public and 4 protected, for easy extending / prototyping.

# Public

  • call(string $method, string $endpoint, array $args = []) : stdClass
  • setMode(int $gopay::DEV/PROD) : void
  • $useragent : PHP+Markette/GopaySimple/{VERSION}
  • $options : [] (cURL options)

# Protected

  • authenticate(array $args) : stdClass (token)
  • makeRequest(string $method, string $endpoint, array $args = []) : string
  • getEndpoint(string $type) : string
  • getEndpointUrl(string $uri) : string

# Common part

use Markette\GopaySimple\GopaySimple;

$gopay = new GopaySimple($clientId, $clientSecret);


$gopay->setMode($gopay::DEV);
1
2
3
4
5
6

# Authorization (Oauth)

Auth process is very simple and automatic. So, you do not have to do anything.

If you really need override authorization, you have to extend GopaySimple and call authenticate($args) directly.

# Payments

# 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',
]);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# GET+payments/payment/{id}
$response = $gopay->call('GET', 'payments/payment/{id}');
1

# Best practice

You should inject GopaySimple into your service layer. And configure $args before creating payment for target.

Example of GopayService (opens new window).

# Testing

  1. Start build-in server at tests/buildin/run.sh
  2. Run tester at tests/tester

# Development

This package was maintain by these authors.


Consider to support (opens new window) contributte development team. Also thank you for being used this package.