/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { // Purchase ID $purchase_id = Pronamic_WP_Pay_Gateways_IDeal_Util::get_purchase_id($this->config->purchase_id, $data, $payment); $payment->set_meta('purchase_id', $purchase_id); // Transaction $transaction = new Pronamic_WP_Pay_Gateways_IDealAdvancedV3_Transaction(); $transaction->set_purchase_id($purchase_id); $transaction->set_amount($data->get_amount()); $transaction->set_currency($data->get_currency()); $transaction->set_expiration_period('PT3M30S'); $transaction->set_language($data->get_language()); $transaction->set_description($data->get_description()); $transaction->set_entrance_code($data->get_entrance_code()); $return_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $result = $this->client->create_transaction($transaction, $return_url, $data->get_issuer_id()); $error = $this->client->get_error(); if (is_wp_error($error)) { $this->set_error($error); } else { $issuer = $result->issuer; $payment->set_action_url($result->issuer->get_authentication_url()); $payment->set_transaction_id($result->transaction->get_id()); } }
/** * Start an transaction with the specified data * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { $payment->set_action_url($this->client->get_payment_server_url()); // Purchase ID $purchase_id = Pronamic_WP_Pay_Gateways_IDeal_Util::get_purchase_id($this->config->purchase_id, $data, $payment); $payment->set_meta('purchase_id', $purchase_id); // General $this->client->set_language($data->get_language()); $this->client->set_currency($data->get_currency()); $this->client->set_purchase_id($purchase_id); $this->client->set_description($data->get_description()); // Items $items = new Pronamic_WP_Pay_Gateways_IDealBasic_Items(); foreach ($data->get_items() as $item) { $items->add_item(new Pronamic_WP_Pay_Gateways_IDealBasic_Item($item->getNumber(), $item->get_description(), $item->getQuantity(), $item->getPrice())); } $this->client->set_items($items); // URLs $url = add_query_arg('payment', $payment->get_id(), home_url('/')); $this->client->set_cancel_url(add_query_arg('status', Pronamic_WP_Pay_Gateways_IDeal_Statuses::CANCELLED, $url)); $this->client->set_success_url(add_query_arg('status', Pronamic_WP_Pay_Gateways_IDeal_Statuses::SUCCESS, $url)); $this->client->set_error_url(add_query_arg('status', Pronamic_WP_Pay_Gateways_IDeal_Statuses::FAILURE, $url)); }
/** * Start transaction with the specified date * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { // Purchase ID $purchase_id = Pronamic_WP_Pay_Gateways_IDeal_Util::get_purchase_id($this->config->purchase_id, $data, $payment); $payment->set_meta('purchase_id', $purchase_id); // Transaction request message $transaction = new Pronamic_WP_Pay_Gateways_IDealAdvanced_Transaction(); $transaction->setPurchaseId($purchase_id); $transaction->setAmount($data->get_amount()); $transaction->setCurrency($data->get_currency()); $transaction->setExpirationPeriod('PT30M'); $transaction->setLanguage($data->get_language()); $transaction->setDescription($data->get_description()); $transaction->setEntranceCode($data->get_entrance_code()); $result = $this->client->create_transaction($transaction, $payment->get_return_url(), $data->get_issuer_id()); $error = $this->client->get_error(); if (null !== $error) { $this->error = $error; } else { $payment->set_action_url($result->issuer->authenticationUrl); $payment->set_transaction_id($result->transaction->getId()); } }