public function testCardProcess() { $Client = new Client(111, 222); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs'); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'signature' => '5c98d9316b1dafac6d33ad0605101fe4b4c07fba6791e37772ead929e874573c'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'signature' => '23b76427e7880036d133a8df3f8eac5cd580650b1ab9458abc624f135685c21a'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false, true); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'verify_card' => true, 'signature' => 'b5ee9c6c78c341cf33be6995e29c017a841ecee06aa81b56ef3231474419b13a'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false, true, true); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'verify_card' => true, 'recurring' => true, 'signature' => 'c5b7613bcf1962a635ad924a2f02983ff9ba9310bdfe01caa4e22844ec29c701'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false, true, true, 5); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'verify_card' => true, 'recurring' => true, 'recurring_interval' => 5, 'signature' => 'eec09dfe0c2e937065fb5d4df8b65749ee6ca86efa311b0d9e378ef20b298b32'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false, true, true, 5, 1); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'verify_card' => true, 'recurring' => true, 'recurring_interval' => 5, 'recurring_trial' => 1, 'signature' => '86b3f52404f1ca93178575e1c95d413cc9d6b03eff642676fd234436e510dbd4'], $this->getRequestParametersProperty($Request)); $Request = $Client->cardProcess('444', 'tkn', '555', 7, 'RUB', 'Lorem ipsum', '127.0.0.1', 'http://alxmsl.ru/acs', false, true, true, 5, 1, ['test1' => 'some_attr', 'test2' => 5]); $this->assertEquals(['project' => '111', 'user' => '444', 'card_token' => 'tkn', 'order_id' => '555', 'price' => 7.0, 'currency' => 'RUB', 'description' => 'Lorem ipsum', 'ip' => '127.0.0.1', 'acs_return_url' => 'http://alxmsl.ru/acs', 'remember' => false, 'verify_card' => true, 'recurring' => true, 'recurring_interval' => 5, 'recurring_trial' => 1, 'attr_test1' => 'some_attr', 'attr_test2' => 5, 'signature' => '5e53aba4507f2729764f7e72ffe5d68898e61b5bcb6f7cf2860188cd104f999c'], $this->getRequestParametersProperty($Request)); }
}); $Command->appendParameter(new Option('remember', 'm', 'indicates whether a user wants to remember his credit card in Merchant\'s service. If true, then permanentToken in response will contain token, that will be used for transaction processing, instead of temporary token', Option::TYPE_BOOLEAN), function ($name, $value) use(&$remember) { $remember = (bool) $value; }); $Command->appendParameter(new Option('token', 't', 'credit card token (temporary or permanent)', Option::TYPE_STRING, true), function ($name, $value) use(&$cardToken) { $cardToken = (string) $value; }); $Command->appendParameter(new Option('trial', 'f', 'Recurring trial period in days (first recurring payment will occur after trial). Recurring trial will work only if recurring interval is set', Option::TYPE_STRING), function ($name, $value) use(&$recurringTrial) { $recurringTrial = (int) $value; }); $Command->appendParameter(new Option('url', 'l', 'URL where 3DSecure service will return user after the authentication', Option::TYPE_STRING, true), function ($name, $value) use(&$url) { $url = (string) $value; }); $Command->appendParameter(new Option('user', 'u', 'user identifier', Option::TYPE_STRING, true), function ($name, $value) use(&$user) { $user = (string) $value; }); $Command->appendParameter(new Option('verify', 'v', 'if set to 1, then transaction price will be set to 1 EUR, that will be put on hold and then instantly returned', Option::TYPE_BOOLEAN), function ($name, $value) use(&$verifyCard) { $verifyCard = (bool) $value; }); try { $Command->parse(true); $Client = new Client($publicKey, $privateKey); $Response = $Client->cardProcess($user, $cardToken, $orderId, $price, $currency, $description, $ip, $url, $remember, $verifyCard, $recurring, $recurringInterval, $recurringTrial, $attributes)->execute(); printf("%s\n", $Response); } catch (RequiredOptionException $Ex) { $Command->displayHelp(); }