Пример #1
0
 /**
  * Start
  *
  * @param Pronamic_Pay_PaymentDataInterface $data
  * @see Pronamic_WP_Pay_Gateway::start()
  */
 public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null)
 {
     $result = $this->client->create_payment($data->get_issuer_id(), Pronamic_WP_Util::amount_to_cents($data->get_amount()), $data->get_description(), add_query_arg('payment', $payment->get_id(), home_url('/')), add_query_arg('payment', $payment->get_id(), home_url('/')));
     if (false !== $result) {
         $payment->set_transaction_id($result->transaction_id);
         $payment->set_action_url($result->url);
     } else {
         $this->error = $this->client->get_error();
     }
 }
 /**
  * Get document
  *
  * @see Pronamic_Gateways_IDealAdvancedV3_XML_RequestMessage::get_document()
  */
 public function get_document()
 {
     $document = parent::get_document();
     // Root
     $root = $document->documentElement;
     // Merchant
     $merchant = $this->merchant;
     $element = Pronamic_WP_Pay_XML_Util::add_element($document, $document->documentElement, 'merchant');
     Pronamic_WP_Pay_XML_Util::add_elements($document, $element, array('account' => $merchant->account, 'site_id' => $merchant->site_id, 'site_secure_code' => $merchant->site_secure_code, 'notification_url' => $merchant->notification_url, 'redirect_url' => $merchant->redirect_url, 'cancel_url' => $merchant->cancel_url, 'close_window' => $merchant->close_window));
     // Customer
     $customer = $this->customer;
     $element = Pronamic_WP_Pay_XML_Util::add_element($document, $document->documentElement, 'customer');
     Pronamic_WP_Pay_XML_Util::add_elements($document, $element, array('locale' => $customer->locale, 'ipaddress' => $customer->ip_address, 'forwardedip' => $customer->forwarded_ip, 'firstname' => $customer->first_name, 'lastname' => $customer->last_name, 'address1' => $customer->address_1, 'address2' => $customer->address_2, 'housenumber' => $customer->house_number, 'zipcode' => $customer->zip_code, 'city' => $customer->city, 'country' => $customer->country, 'phone' => $customer->phone, 'email' => $customer->email));
     // Transaction
     $transaction = $this->transaction;
     $element = Pronamic_WP_Pay_XML_Util::add_element($document, $document->documentElement, 'transaction');
     Pronamic_WP_Pay_XML_Util::add_elements($document, $element, array('id' => $transaction->id, 'currency' => $transaction->currency, 'amount' => Pronamic_WP_Util::amount_to_cents($transaction->amount), 'description' => $transaction->description, 'var1' => $transaction->var1, 'var2' => $transaction->var2, 'var3' => $transaction->var3, 'items' => $transaction->items, 'manual' => $transaction->manual, 'gateway' => $transaction->gateway, 'daysactive' => $transaction->days_active));
     // Signature
     $element = Pronamic_WP_Pay_XML_Util::add_element($document, $document->documentElement, 'signature', $this->signature);
     return $document;
 }
Пример #3
0
 /**
  * Get the iDEAL HTML
  *
  * @since 1.1.1
  * @return array
  */
 public function get_fields()
 {
     $fields = array();
     $fields['merchantID'] = $this->get_merchant_id();
     $fields['subID'] = $this->get_sub_id();
     $fields['amount'] = Pronamic_WP_Pay_Util::amount_to_cents($this->get_amount());
     $fields['purchaseID'] = $this->get_purchase_id();
     $fields['language'] = $this->get_language();
     $fields['currency'] = $this->get_currency();
     $fields['description'] = $this->get_description();
     $fields['hash'] = $this->create_hash();
     $fields['paymentType'] = $this->get_payment_type();
     $fields['validUntil'] = $this->get_expire_date()->format($this->get_expire_date_format());
     $serial_number = 1;
     foreach ($this->get_items() as $item) {
         $fields['itemNumber' . $serial_number] = $item->get_number();
         $fields['itemDescription' . $serial_number] = $item->get_description();
         $fields['itemQuantity' . $serial_number] = $item->get_quantity();
         $fields['itemPrice' . $serial_number] = Pronamic_WP_Util::amount_to_cents($item->get_price());
         $serial_number++;
     }
     $fields['urlCancel'] = $this->get_cancel_url();
     $fields['urlSuccess'] = $this->get_success_url();
     $fields['urlError'] = $this->get_error_url();
     return $fields;
 }
Пример #4
0
 /**
  * Transaction start
  *
  * @param float $amount
  * @param string $ip_address
  * @param string $finish_url
  * @return stdClass
  *
  * @see https://admin.pay.nl/docpanel/api/Transaction/start/4
  */
 public function transaction_start($amount, $ip_address, $finish_url)
 {
     $result = null;
     // URL
     $url = $this->get_url('v4', 'Transaction', 'start', 'json', array('token' => $this->token, 'serviceId' => $this->service_id, 'amount' => Pronamic_WP_Util::amount_to_cents($amount), 'ipAddress' => $ip_address, 'finishUrl' => $finish_url));
     // Request
     $response = wp_remote_get($url);
     if (200 == wp_remote_retrieve_response_code($response)) {
         $body = wp_remote_retrieve_body($response);
         $data = json_decode($body);
         $result = $this->parse_response($data);
     }
     // Return
     return $result;
 }
Пример #5
0
 /**
  * Start
  *
  * @see Pronamic_WP_Pay_Gateway::start()
  */
 public function start(Pronamic_Pay_Payment $payment)
 {
     $result = $this->client->create_payment($payment->get_issuer(), Pronamic_WP_Util::amount_to_cents($payment->get_amount()), $payment->get_description(), $payment->get_return_url(), $payment->get_return_url());
     if (false !== $result) {
         $payment->set_transaction_id($result->transaction_id);
         $payment->set_action_url($result->url);
     } else {
         $this->error = $this->client->get_error();
     }
 }
 /**
  * Get the sign values for this transaction request message
  *
  * @return array
  */
 public function getSignValues()
 {
     return array($this->getCreateDate()->format(Pronamic_IDeal_IDeal::DATE_FORMAT), $this->issuer->getId(), $this->getMerchant()->id, $this->getMerchant()->subId, $this->getMerchant()->returnUrl, $this->transaction->getPurchaseId(), Pronamic_WP_Util::amount_to_cents($this->transaction->get_amount()), $this->transaction->getCurrency(), $this->transaction->getLanguage(), $this->transaction->get_description(), $this->transaction->getEntranceCode());
 }
Пример #7
0
 /**
  * Get HTML fields
  *
  * @return string
  */
 public function get_html_fields()
 {
     return Pronamic_IDeal_IDeal::htmlHiddenFields(array(Pronamic_Gateways_Adyen_Parameters::MERCHANT_REFERENCE => $this->get_merchant_reference(), Pronamic_Gateways_Adyen_Parameters::PAYMENT_AMOUNT => Pronamic_WP_Util::amount_to_cents($this->get_payment_amount()), Pronamic_Gateways_Adyen_Parameters::CURRENCY_CODE => $this->get_currency_code(), Pronamic_Gateways_Adyen_Parameters::SHIP_BEFORE_DATE => Pronamic_WP_Util::format_date('Y-m-d', $this->get_ship_before_date()), Pronamic_Gateways_Adyen_Parameters::SKIN_CODE => $this->get_skin_code(), Pronamic_Gateways_Adyen_Parameters::MERCHANT_ACCOUNT => $this->get_merchant_account(), Pronamic_Gateways_Adyen_Parameters::SHOPPER_LOCALE => $this->get_shopper_locale(), Pronamic_Gateways_Adyen_Parameters::ORDER_DATA => base64_encode(gzencode($this->get_order_data())), Pronamic_Gateways_Adyen_Parameters::SESSION_VALIDITY => Pronamic_WP_Util::format_date(DATE_ATOM, $this->get_session_validity()), Pronamic_Gateways_Adyen_Parameters::MERCHANT_SIGNATURE => $this->get_signature(), Pronamic_Gateways_Adyen_Parameters::SHOPPER_EMAIL => $this->get_shopper_email(), Pronamic_Gateways_Adyen_Parameters::SHOPPER_REFERENCE => $this->get_shopper_reference()));
 }
Пример #8
0
 /**
  * Transaction start
  *
  * @param float $amount
  * @param string $ip_address
  * @param string $finish_url
  * @return stdClass
  *
  * @see https://admin.pay.nl/docpanel/api/Transaction/start/4
  */
 public function transaction_start($amount, $ip_address, $finish_url, $request_param = array())
 {
     $parameters = array_merge($request_param, array('token' => $this->token, 'serviceId' => $this->service_id, 'amount' => Pronamic_WP_Util::amount_to_cents($amount), 'ipAddress' => $ip_address, 'finishUrl' => $finish_url));
     // Request
     $result = $this->send_request('v4', 'Transaction', 'start', 'json', $parameters);
     // Return result
     return $result;
 }