/** * REST API method card/processRecurring implementation * @param string $userId user's identifier * @param float $price price in real currency * @param string $currency currency code as ISO 4217 * @param null|string $orderId merchant's order ID that will be returned back in a callback * @param null|string $description product description * @return Request card/processRecurring request instance * @throws ErrorException if there is an API error */ public function cardProcessRecurring($userId, $price, $currency, $orderId = null, $description = null) { $parameters = ['user' => (string) $userId, 'price' => (double) $price, 'currency' => (string) $currency]; if (!is_null($orderId)) { $parameters['order_id'] = (string) $orderId; } if (!is_null($description)) { $parameters['description'] = (string) $description; } return $this->getRequest('card/processRecurring', $parameters, function ($string) { return ProcessRecurringResponse::initializeByString($string); }); }
public function testProcessRecurringResponse() { $Response = ProcessRecurringResponse::initializeByString('{ "id": 1326123574311498453, "success": true, "card": { "lastFour": "4242", "type": "visa", "mask": "************4242", "expirationMonth": "4", "expirationYear": "2020" } }'); $this->assertEquals('1326123574311498453', $Response->getId()); $this->assertTrue($Response->isSuccess()); $this->assertEquals('4242', $Response->getCard()->getLastFour()); $this->assertEquals('************4242', $Response->getCard()->getMask()); $this->assertEquals(4, $Response->getCard()->getExpirationMonth()); $this->assertEquals(2020, $Response->getCard()->getExpirationYear()); $this->assertEquals('process recurring result id: 1326123574311498453 success: true card four: 4242 mask: ************4242 type: visa exp. month: 4 exp. year: 2020', (string) $Response); }