moneta-sdk-php v2.0.0
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace Moneta;
|
||||
|
||||
class MonetaSdkService {
|
||||
/**
|
||||
* Exception messages text
|
||||
*/
|
||||
const EXCEPTION_ERROR_ACTION_NAME = "Wrong action name: ";
|
||||
|
||||
/**
|
||||
* @param string $action
|
||||
* @param string $transactionId
|
||||
* @param float|int $amount
|
||||
* @param string $subscriber
|
||||
* @return string
|
||||
* @throws MonetaSdkException
|
||||
*/
|
||||
public static function createSignature($action, $transactionId, $configPath, ?float $amount = null,) {
|
||||
switch ($action) {
|
||||
case 'generateLink':
|
||||
return md5(
|
||||
MonetaSdkSettings::getSettings('id', $configPath) .
|
||||
$transactionId .
|
||||
number_format($amount, 2, '.', '') .
|
||||
MonetaSdkSettings::getSettings('currency', $configPath) .
|
||||
'' .
|
||||
0 .
|
||||
MonetaSdkSettings::getSettings('secret', $configPath)
|
||||
);
|
||||
break;
|
||||
|
||||
case 'checkRequest':
|
||||
return md5(
|
||||
402 .
|
||||
MonetaSdkSettings::getSettings('id', $configPath) .
|
||||
$transactionId .
|
||||
MonetaSdkSettings::getSettings('secret', $configPath)
|
||||
);
|
||||
break;
|
||||
|
||||
case 'paymentNotification':
|
||||
return md5(
|
||||
200 .
|
||||
MonetaSdkSettings::getSettings('id', $configPath) .
|
||||
$transactionId .
|
||||
MonetaSdkSettings::getSettings('secret', $configPath)
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new MonetaSdkException(self::EXCEPTION_ERROR_ACTION_NAME . $action);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $jsonVat
|
||||
* @return string
|
||||
*/
|
||||
public static function getXmlVat($jsonVat) {
|
||||
$xmlVatList = [
|
||||
'none' => '1105',
|
||||
'vat0' => '1104',
|
||||
'vat10' => '1103',
|
||||
'vat110' => '1107',
|
||||
'vat20' => '7000',
|
||||
'vat120' => '7001',
|
||||
'vat5' => '1108',
|
||||
'vat7' => '1109',
|
||||
'vat15' => '1110',
|
||||
'vat17' => '1111'
|
||||
];
|
||||
|
||||
return isset($xmlVatList[$jsonVat]) ? $xmlVatList[$jsonVat] : '1105';
|
||||
}
|
||||
|
||||
/**
|
||||
* MerchantAPI query builder
|
||||
*/
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private static function getApiUrl($configPath) {
|
||||
$url = MonetaSdkSettings::getSettings('demo_mode', $configPath) ? MonetaSdkSettings::getSettings('payment_url', $configPath)['demo'] : MonetaSdkSettings::getSettings('payment_url', $configPath)['production'];
|
||||
|
||||
$urn = MonetaSdkSettings::getSettings('urn');
|
||||
|
||||
return $url . $urn;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params
|
||||
* @return string
|
||||
*/
|
||||
public static function sendCurl($params, $configPath) {
|
||||
$ch = curl_init(self::getApiUrl($configPath));
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params, JSON_UNESCAPED_UNICODE));
|
||||
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
return json_decode($result, true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user