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));
 }
Example #2
0
});
$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();
}