omnipay-unitpay
, (*1)
Unitpay gateway for Omnipay payment processing library., (*2)
Omnipay is a framework agnostic, multi-gateway payment
processing library for PHP 5.3+. This package implements Okpay support for Omnipay., (*3)
Installation
Omnipay is installed via Composer. To install, simply add it
to your composer.json file:, (*4)
{
"require": {
"aleksandrzhiliaev/omnipay-unitpay": "*"
}
}
And run composer to update your dependencies:, (*5)
$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update
Basic Usage
The following gateways are provided by this package:, (*6)
For general usage instructions, please see the main Omnipay
repository. See also the Unitpay Documentation, (*7)
Example
- Purchase:
$gateway = Omnipay::create('Unitpay');
$gateway->setPublicKey('');
$gateway->setSecretKey('');
$response = $gateway->purchase([
'amount' => '0.1',
'currency' => 'USD',
'transactionId' => time(),
'description' => 'Order # 123',
])->send();
if ($response->isSuccessful()) {
// success
} elseif ($response->isRedirect()) {
# Generate form to do payment
$hiddenFields = '';
foreach ($response->getRedirectData() as $key => $value) {
$hiddenFields .= sprintf(
'<input type="hidden" name="%1$s" value="%2$s" />',
htmlentities($key, ENT_QUOTES, 'UTF-8', false),
htmlentities($value, ENT_QUOTES, 'UTF-8', false)
)."\n";
}
$output = '
';
$output = sprintf(
$output,
htmlentities($response->getRedirectUrl(), ENT_QUOTES, 'UTF-8', false),
$hiddenFields
);
echo $output;
# End of generating form
} else {
echo $response->getMessage();
}
- Validate webhook
try {
$response = $gateway->completePurchase()->send();
$success = $response->isSuccessful();
if ($success) {
$transactionId = $response->getTransactionId();
$amount = $response->getAmount();
$currency = $response->getCurrency();
// success
}
} catch (\Exception $e) {
// check $e->getMessage()
}
- Do refund
To be done
Support
If you are having general issues with Omnipay, we suggest posting on
Stack Overflow. Be sure to add the
omnipay tag so it can be easily found., (*8)
If you want to keep up to date with release anouncements, discuss ideas for the project,
or ask more detailed questions, there is also a mailing list which
you can subscribe to., (*9)
If you believe you have found a bug, please report it using the GitHub issue tracker., (*10)