Platon SDK for PHP.
Changelog |
Usage Examples
Using composer:
composer require wearesho-team/platon
For configuration you have to use ConfigInterface. Available implementations:
- Config - simple entity. Example:
<?php
use Wearesho\Bobra\Platon;
$config = new Platon\Config("Key", "Pass", "PaymentType");
- EnvironmentConfig - configuration using getenv. Example:
<?php
use Wearesho\Bobra\Platon;
$config = new Platon\EnvironmentConfig();
Environment configuration:
Variable | Required | Default | Description |
---|---|---|---|
PLATON_KEY | yes | public key | |
PLATON_PASS | yes | secret key | |
PLATON_URL | no | https://secure.platononline.com/ | base url to make C2C requests |
PLATON_PAYMENT | no | CC | default payment type |
PLATON_LANGUAGE | no | ua | language: ru or ua |
Use Client to fetch payment config
<?php
use Wearesho\Bobra\Platon;
use Wearesho\Bobra\Payments;
$config = new Platon\EnvironmentConfig();
$client = new Platon\Client($config);
$payment = $client->createPayment(
new Payments\UrlPair(
'http://redirect-url-on-success',
'http://redirect-url-on-fail'
),
new Platon\Transaction(
$serviceId = 1,
$amount = 500,
$paymentType = 'paymentType',
$description = 'description for payment',
$ext = [
0 => 'some-info'
], // optional, will be returned in notification
$currency = 'UAH', // optional
$formId = 'Form id for front-end' // optional
)
);
<?php
$config = $payment->jsonSerialize(); // ['action' => 'URL', 'data' => 'url']
*You should send data
to action
url.
Use Notification\Server to create payment instance from platon`s request:
<?php
use Wearesho\Bobra\Platon;
class PlatonController
{
public function actionHandle()
{
// You can use several platon configs in different cases.
// Handler will get that one that matches `key` param from platon`s request.
// All platon configs should be passed into ConfigProvider.
$configProvider = new Platon\Notification\ConfigProvider([
new Platon\Config('First key', 'first pass', 'CC'),
new Platon\Config('Second key', 'second pass', 'CC'),
]);
$server = new Platon\Notification\Server($configProvider);
try {
$payment = $server->handle($_POST);
} catch (Platon\Notification\InvalidSignException $exception) {
// handle invalid sign
} catch (\InvalidArgumentException $exception) {
// When received data is incorrect or some required fields are empty
}
// You can use returned Payment instance to save transaction data.
}
}
Fetching information about account balance. Use Info\ConfigInterface for configuration. EnvironmentConfig available:
Variable | Required | Description |
---|---|---|
PLATON_INFO_PUBLIC_KEY | yes | Public Key for Info API |
PLATON_INFO_PRIVATE_KEY | yes | Private Key for Info API |
<?php
use Wearesho\Bobra\Platon;
$publicKey = readline("Public Key: ");
$privateKey = readline("Private Key: ");
$config = new Platon\Info\Config($publicKey, $privateKey);
$client = new GuzzleHttp\Client();
$repository = new Platon\Info\Repository($config, $client);
// All items can be converted to string and JSON formats
$responses = $repository->get();
See Info\Response for details.