/** * 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; }
/** * 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; }
/** * 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; }
/** * 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()); }
/** * 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())); }
/** * 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; }