diff --git a/wa-plugins/payment/tinkoff/lib/config/plugin.php b/wa-plugins/payment/tinkoff/lib/config/plugin.php index 0fe3917ef..f7efc0c38 100644 --- a/wa-plugins/payment/tinkoff/lib/config/plugin.php +++ b/wa-plugins/payment/tinkoff/lib/config/plugin.php @@ -5,7 +5,7 @@ 'icon' => 'img/tinkoff16.png', 'logo' => 'img/tinkoff.png', 'vendor' => 'webasyst', - 'version' => '1.0.21', + 'version' => '1.0.22', 'type' => waPayment::TYPE_ONLINE, 'partial_refund' => true, 'partial_capture' => true, diff --git a/wa-plugins/payment/tinkoff/lib/tinkoffPayment.class.php b/wa-plugins/payment/tinkoff/lib/tinkoffPayment.class.php index 43409f6ba..ec83a49d4 100644 --- a/wa-plugins/payment/tinkoff/lib/tinkoffPayment.class.php +++ b/wa-plugins/payment/tinkoff/lib/tinkoffPayment.class.php @@ -175,12 +175,14 @@ private function checkToken($args) ksort($args); - foreach ($args as &$arg) { + foreach ($args as $k => &$arg) { if (is_bool($arg)) { $arg = $arg ? 'true' : 'false'; + } else if (!is_scalar($arg)) { + unset($args[$k]); } - unset($arg); } + unset($arg); $expected_token = hash('sha256', implode('', $args)); @@ -789,7 +791,7 @@ protected function formalizeData($data) break; case 'CONFIRMED': - if ($parent_transaction) { + if ($parent_transaction && $parent_transaction['type'] == self::OPERATION_AUTH_ONLY) { $transaction_data['type'] = self::OPERATION_CAPTURE; } else { $transaction_data['type'] = self::OPERATION_AUTH_CAPTURE;