private function process(ExternalPayment $external_payment)
{
$process_options = array('request_id' => $this->request_id, 'instance_id' => $this->instance_id, 'ext_auth_success_uri' => $this->router->generate('subscribe_callback_success', [], Router::ABSOLUTE_URL), 'ext_auth_fail_uri' => $this->router->generate('subscribe_callback_fail', [], Router::ABSOLUTE_URL));
$count = 0;
do {
$result = $external_payment->process($process_options);
if ('in_progress' === $result->status) {
sleep(1);
$count++;
}
} while ('in_progress' === $result->status && $count < 10);
if ('ext_auth_required' !== $result->status) {
throw new \Exception();
}
return $result;
}