Example #1
0
 /**
  * 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());
     }
 }
 /**
  * Parse the specified XML element into an iDEAL transaction object
  *
  * @param SimpleXMLElement $xml
  * @param Pronamic_Gateways_IDealAdvanced_Transaction $transaction
  */
 public static function parse(SimpleXMLElement $xml, $transaction = null)
 {
     if (!$transaction instanceof Pronamic_WP_Pay_Gateways_IDealAdvancedV3_Transaction) {
         $transaction = new Pronamic_WP_Pay_Gateways_IDealAdvancedV3_Transaction();
     }
     if ($xml->transactionID) {
         $transaction->set_id(Pronamic_WP_Pay_XML_Security::filter($xml->transactionID));
     }
     if ($xml->purchaseID) {
         $transaction->set_purchase_id(Pronamic_WP_Pay_XML_Security::filter($xml->purchaseID));
     }
     if ($xml->status) {
         $transaction->set_status(Pronamic_WP_Pay_XML_Security::filter($xml->status));
     }
     if ($xml->consumerName) {
         $transaction->set_consumer_name(Pronamic_WP_Pay_XML_Security::filter($xml->consumerName));
     }
     if ($xml->consumerIBAN) {
         $transaction->set_consumer_iban(Pronamic_WP_Pay_XML_Security::filter($xml->consumerIBAN));
     }
     if ($xml->consumerBIC) {
         $transaction->set_consumer_bic(Pronamic_WP_Pay_XML_Security::filter($xml->consumerBIC));
     }
     return $transaction;
 }
 /**
  * Start
  *
  * @see Pronamic_WP_Pay_Gateway::start()
  */
 public function start(Pronamic_Pay_Payment $payment)
 {
     // Purchase ID
     $purchase_id = $payment->format_string($this->config->purchase_id);
     $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($payment->get_amount());
     $transaction->set_currency($payment->get_currency());
     $transaction->set_expiration_period('PT30M');
     $transaction->set_language($payment->get_language());
     $transaction->set_description($payment->get_description());
     $transaction->set_entrance_code($payment->get_entrance_code());
     $result = $this->client->create_transaction($transaction, $payment->get_return_url(), $payment->get_issuer());
     $error = $this->client->get_error();
     if (is_wp_error($error)) {
         $this->set_error($error);
         return;
     }
     $payment->set_action_url($result->issuer->get_authentication_url());
     $payment->set_transaction_id($result->transaction->get_id());
 }