/** * 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) { $request = new Pronamic_WP_Pay_Gateways_Mollie_PaymentRequest(); $request->amount = $data->get_amount(); $request->description = $data->get_description(); $request->redirect_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $request->locale = Pronamic_WP_Pay_Mollie_LocaleHelper::transform($data->get_language()); switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: $request->method = Pronamic_WP_Pay_Mollie_Methods::CREDITCARD; break; case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $request->method = Pronamic_WP_Pay_Mollie_Methods::MISTERCASH; break; case Pronamic_WP_Pay_PaymentMethods::SOFORT: $request->method = Pronamic_WP_Pay_Mollie_Methods::SOFORT; break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: // @since 1.1.2 $request->method = Pronamic_WP_Pay_Mollie_Methods::IDEAL; break; } $result = $this->client->create_payment($request); if ($result) { $payment->set_transaction_id($result->id); $payment->set_action_url($result->links->paymentUrl); } else { $this->error = $this->client->get_error(); } }
/** * 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) { $order_id = $data->get_order_id(); $purchase_id = empty($order_id) ? $payment->get_id() : $order_id; $transaction_request = new Pronamic_WP_Pay_Gateways_Sisow_TransactionRequest(); $transaction_request->merchant_id = $this->config->merchant_id; $transaction_request->shop_id = $this->config->shop_id; switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::IDEAL: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::IDEAL; break; case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::MISTER_CASH; break; } $transaction_request->set_purchase_id($purchase_id); $transaction_request->amount = $data->get_amount(); $transaction_request->issuer_id = $data->get_issuer_id(); $transaction_request->test_mode = Pronamic_IDeal_IDeal::MODE_TEST === $this->config->mode; $transaction_request->set_entrance_code($data->get_entrance_code()); $transaction_request->description = $data->get_description(); $transaction_request->return_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $transaction_request->cancel_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $transaction_request->callback_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $transaction_request->notify_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $result = $this->client->create_transaction($transaction_request); if (false !== $result) { $payment->set_transaction_id($result->id); $payment->set_action_url($result->issuer_url); } else { $this->error = $this->client->get_error(); } }
/** * 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_transaction($data->get_amount(), $data->get_currency(), $data->get_issuer_id(), $data->get_description(), add_query_arg('payment', $payment->get_id(), home_url('/'))); if (false !== $result) { $payment->set_transaction_id($result->transaction_id); $payment->set_action_url($result->bank_url); } else { $this->error = $this->client->get_error(); } }
/** * 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->transaction_start($data->get_amount(), Pronamic_WP_Pay_Gateways_PayNL_Util::get_ip_address(), add_query_arg('payment', $payment->get_id(), home_url('/'))); if (isset($result, $result->transaction)) { $transaction_id = $result->transaction->transactionId; $payment_url = $result->transaction->paymentURL; $payment->set_transaction_id($transaction_id); $payment->set_action_url($payment_url); } else { $this->error = $this->client->get_error(); } }
/** * 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) { $payment->set_transaction_id(md5(time() . $data->get_order_id())); $payment->set_action_url($this->client->get_payment_server_url()); $this->client->set_merchant_reference($data->get_order_id()); $this->client->set_payment_amount($data->get_amount()); $this->client->set_currency_code($data->get_currency()); $this->client->set_ship_before_date(new DateTime('+5 days')); $this->client->set_shopper_locale($data->get_language_and_country()); $this->client->set_order_data($data->get_description()); $this->client->set_session_validity(new DateTime('+1 hour')); $this->client->set_shopper_reference($data->get_email()); $this->client->set_shopper_email($data->get_email()); }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() * @param Pronamic_Pay_Payment $payment */ public function start(Pronamic_Pay_Payment $payment) { $ogone_data = new Pronamic_WP_Pay_Gateways_Ogone_Data(); // General $ogone_data_general = new Pronamic_WP_Pay_Gateways_Ogone_DataGeneralHelper($ogone_data); $ogone_data_general->set_psp_id($this->client->psp_id)->set_order_id($payment->format_string($this->config->order_id))->set_order_description($payment->get_description())->set_param_plus('payment_id=' . $payment->get_id())->set_currency($payment->get_currency())->set_amount($payment->get_amount())->set_language($payment->get_locale()); // Customer $ogone_data_customer = new Pronamic_WP_Pay_Gateways_Ogone_DataCustomerHelper($ogone_data); $ogone_data_customer->set_name($payment->get_customer_name())->set_email($payment->get_email())->set_address($payment->get_address())->set_zip($payment->get_zip())->set_town($payment->get_city())->set_country($payment->get_country())->set_telephone_number($payment->get_telephone_number()); // DirectLink $ogone_data_directlink = new Pronamic_WP_Pay_Gateways_Ogone_DirectLink_DataHelper($ogone_data); $ogone_data_directlink->set_user_id($this->client->user_id)->set_password($this->client->password); // Credit card $ogone_data_credit_card = new Pronamic_WP_Pay_Gateways_Ogone_DataCreditCardHelper($ogone_data); $credit_card = $payment->get_credit_card(); $ogone_data_credit_card->set_number($credit_card->get_number())->set_expiration_date($credit_card->get_expiration_date())->set_security_code($credit_card->get_security_code()); $ogone_data->set_field('OPERATION', 'SAL'); // 3-D Secure if ($this->config->enabled_3d_secure) { $secure_data_helper = new Pronamic_WP_Pay_Gateways_Ogone_3DSecure_DataHelper($ogone_data); $secure_data_helper->set_3d_secure_flag(true)->set_http_accept(Pronamic_WP_Pay_Server::get('HTTP_ACCEPT'))->set_http_user_agent(Pronamic_WP_Pay_Server::get('HTTP_USER_AGENT'))->set_window('MAINW'); $ogone_data->set_field('ACCEPTURL', $payment->get_return_url()); $ogone_data->set_field('DECLINEURL', $payment->get_return_url()); $ogone_data->set_field('EXCEPTIONURL', $payment->get_return_url()); $ogone_data->set_field('COMPLUS', ''); } // Signature $calculation_fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculations_parameters_in(); $fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculation_fields($calculation_fields, $ogone_data->get_fields()); $signature = Pronamic_WP_Pay_Gateways_Ogone_Security::get_signature($fields, $this->config->sha_in_pass_phrase, $this->config->hash_algorithm); $ogone_data->set_field('SHASIGN', $signature); // Order $result = $this->client->order_direct($ogone_data->get_fields()); $error = $this->client->get_error(); if (is_wp_error($error)) { $this->error = $error; } else { $payment->set_transaction_id($result->pay_id); $payment->set_action_url($payment->get_return_url()); $payment->set_status(Pronamic_WP_Pay_Gateways_Ogone_Statuses::transform($result->status)); if (!empty($result->html_answer)) { $payment->set_meta('ogone_directlink_html_answer', $result->html_answer); $payment->set_action_url(add_query_arg('payment_redirect', $payment->get_id(), home_url('/'))); } } }
/** * Start * * @param Pronamic_Pay_PaymentDataInterface $data * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $method = null) { $transaction_request = $this->client->get_transaction_request(); $transaction_request->reference = $payment->get_id(); $transaction_request->description = $data->get_description(); $transaction_request->amount = $data->get_amount(); $transaction_request->method_code = Pronamic_WP_Pay_Gateways_PayDutch_Methods::WEDEAL; $transaction_request->issuer_id = $data->get_issuer_id(); $transaction_request->test = true; $transaction_request->success_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $transaction_request->fail_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $result = $this->client->request_transaction($transaction_request); if ($result) { $payment->set_action_url($result->url); $payment->set_transaction_id($result->id); } else { $this->error = $this->client->get_error(); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { $parameters = new Pronamic_WP_Pay_Gateways_TargetPay_IDealStartParameters(); $parameters->rtlo = $this->config->layoutcode; $parameters->bank = $data->get_issuer_id(); $parameters->description = $data->get_description(); $parameters->amount = $data->get_amount(); $parameters->return_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $parameters->report_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $parameters->cinfo_in_callback = 1; $result = $this->client->start_transaction($parameters); if ($result) { $payment->set_action_url($result->url); $payment->set_transaction_id($result->transaction_id); } else { $this->set_error($this->client->get_error()); } // Schedule transaction status request // @since 1.0.3 $time = time(); wp_schedule_single_event($time + 30, 'pronamic_ideal_check_transaction_status', array('payment_id' => $payment->get_id(), 'seconds' => 30)); }
/** * Start * * @param Pronamic_Pay_PaymentDataInterface $data * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $request = array('enduser' => array('lastName' => $payment->get_customer_name(), 'emailAddress' => $payment->get_email())); switch ($payment->get_method()) { case Pronamic_WP_Pay_PaymentMethods::BANCONTACT: case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $request['paymentOptionId'] = Pronamic_WP_Pay_Gateways_PayNL_PaymentMethods::MISTERCASH; break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: $request['paymentOptionId'] = Pronamic_WP_Pay_Gateways_PayNL_PaymentMethods::IDEAL; $request['paymentOptionSubId'] = $payment->get_issuer(); break; } $result = $this->client->transaction_start($payment->get_amount(), Pronamic_WP_Pay_Gateways_PayNL_Util::get_ip_address(), rawurlencode($payment->get_return_url()), $request); if (!$result) { $this->error = $this->client->get_error(); return; } $payment->set_transaction_id($result->transaction->transactionId); $payment->set_action_url($result->transaction->paymentURL); }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $request = new Pronamic_WP_Pay_Gateways_Mollie_PaymentRequest(); $payment_method = $payment->get_method(); $request->amount = $payment->get_amount(); $request->description = $payment->get_description(); $request->redirect_url = $payment->get_return_url(); $request->webhook_url = $this->get_webhook_url(); $request->locale = Pronamic_WP_Pay_Mollie_LocaleHelper::transform($payment->get_language()); $request->method = Pronamic_WP_Pay_Mollie_Methods::transform($payment_method); if (empty($request->method) && !empty($payment_method)) { // Leap of faith if the WordPress payment method could not transform to a Mollie method? $request->method = $payment_method; } // Customer ID $user_id = $payment->post->post_author; $customer_id = $this->get_customer_id_by_wp_user_id($user_id); if (empty($customer_id)) { $customer_id = $this->client->create_customer($payment->get_email(), $payment->get_customer_name()); if ($customer_id) { $this->update_wp_user_customer_id($user_id, $customer_id); } } $payment->set_meta('mollie_customer_id', $customer_id); // Subscriptions $subscription = $payment->get_subscription(); $subscription_methods = array(Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD, Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT_IDEAL); if ($subscription && in_array($payment_method, $subscription_methods, true)) { if (is_object($this->client->get_error())) { // Set error if customer could not be created $this->error = $this->client->get_error(); // Prevent subscription payment from being created without customer return; } $request->recurring_type = Pronamic_WP_Pay_Mollie_Recurring::RECURRING; $request->method = Pronamic_WP_Pay_Mollie_Methods::transform($payment_method); if (Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT_IDEAL === $payment_method) { // Use direct debit for recurring payments with payment method `Direct Debit (mandate via iDEAL)`. $request->method = Pronamic_WP_Pay_Mollie_Methods::DIRECT_DEBIT; } if ($subscription->has_valid_payment() && !$customer_id) { // Get customer ID from first payment $first = $subscription->get_first_payment(); $customer_id = $first->get_meta('mollie_customer_id'); $payment->set_meta('mollie_customer_id', $customer_id); } $can_user_interact = in_array($payment->get_source(), array('gravityformsideal'), true); // Mandate payment method to check for. $mandate_method = $payment_method; if (Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT_IDEAL === $mandate_method) { $mandate_method = Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT; } if (!$this->client->has_valid_mandate($customer_id, $mandate_method) && (!$subscription->has_valid_payment() || $can_user_interact)) { // First payment or if user interaction is possible and no valid mandates are found $request->recurring_type = Pronamic_WP_Pay_Mollie_Recurring::FIRST; if (Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT_IDEAL === $payment_method) { // Use iDEAL for first payments with payment method `Direct Debit (mandate via iDEAL)`. $request->method = Pronamic_WP_Pay_Mollie_Methods::IDEAL; } } if (Pronamic_WP_Pay_Mollie_Recurring::RECURRING === $request->recurring_type) { // Recurring payment $payment->set_action_url($payment->get_return_url()); if ($subscription->has_valid_payment()) { // Use subscription amount if this is not the initial payment. $payment->amount = $subscription->get_amount(); } } } if (Pronamic_WP_Pay_PaymentMethods::IDEAL === $payment_method) { // If payment method is iDEAL we set the user chosen issuer ID. $request->issuer = $payment->get_issuer(); } $request->customer_id = $customer_id; $result = $this->client->create_payment($request); if (!$result) { $this->error = $this->client->get_error(); return; } if ($subscription && Pronamic_WP_Pay_Mollie_Recurring::RECURRING === $request->recurring_type) { $subscription->set_status(Pronamic_WP_Pay_Mollie_Statuses::transform($result->status)); } $payment->set_transaction_id($result->id); if ('' === $payment->get_action_url()) { $payment->set_action_url($result->links->paymentUrl); } }
/** * Start payment. * * @param Pronamic_Pay_Payment $payment payment object */ public function start(Pronamic_Pay_Payment $payment) { $transaction_description = $payment->get_description(); if (empty($transaction_description)) { $transaction_description = $payment->get_id(); } $merchant = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Merchant(); $merchant->account = $this->config->account_id; $merchant->site_id = $this->config->site_id; $merchant->site_secure_code = $this->config->site_code; $merchant->notification_url = $payment->get_return_url(); $merchant->redirect_url = $payment->get_return_url(); $merchant->cancel_url = $payment->get_return_url(); $merchant->close_window = 'false'; $customer = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Customer(); $customer->locale = $payment->get_locale(); $customer->ip_address = Pronamic_WP_Pay_Server::get('REMOTE_ADDR', FILTER_VALIDATE_IP); $customer->forwarded_ip = Pronamic_WP_Pay_Server::get('HTTP_X_FORWARDED_FOR', FILTER_VALIDATE_IP); $customer->first_name = $payment->get_customer_name(); $customer->email = $payment->get_email(); $transaction = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Transaction(); $transaction->id = uniqid(); $transaction->currency = $payment->get_currency(); $transaction->amount = $payment->get_amount(); $transaction->description = $transaction_description; switch ($payment->get_method()) { case Pronamic_WP_Pay_PaymentMethods::IDEAL: $gateway_info = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_GatewayInfo(); $gateway_info->issuer_id = $payment->get_issuer(); $transaction->gateway = Pronamic_WP_Pay_Gateways_MultiSafepay_Gateways::IDEAL; $message = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_XML_DirectTransactionRequestMessage($merchant, $customer, $transaction, $gateway_info); break; case Pronamic_WP_Pay_PaymentMethods::BANK_TRANSFER: $transaction->gateway = Pronamic_WP_Pay_Gateways_MultiSafepay_Gateways::BANK_TRANSFER; $message = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_XML_RedirectTransactionRequestMessage($merchant, $customer, $transaction); break; default: $message = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_XML_RedirectTransactionRequestMessage($merchant, $customer, $transaction); } $signature = Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Signature::generate($transaction->amount, $transaction->currency, $merchant->account, $merchant->site_id, $transaction->id); $message->signature = $signature; $response = $this->client->start_transaction($message); if ($response) { $transaction = $response->transaction; $payment->set_transaction_id($transaction->id); if ($transaction->payment_url) { $payment->set_action_url($transaction->payment_url); } if ($response->gateway_info && $response->gateway_info->redirect_url) { $payment->set_action_url($response->gateway_info->redirect_url); } } else { $this->error = $this->client->get_error(); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $parameters = new Pronamic_WP_Pay_Gateways_TargetPay_IDealStartParameters(); $parameters->rtlo = $this->config->layoutcode; $parameters->bank = $payment->get_issuer(); $parameters->description = $payment->get_description(); $parameters->amount = $payment->get_amount(); $parameters->return_url = $payment->get_return_url(); $parameters->report_url = $payment->get_return_url(); $parameters->cinfo_in_callback = 1; $result = $this->client->start_transaction($parameters); if ($result) { $payment->set_action_url($result->url); $payment->set_transaction_id($result->transaction_id); } else { $this->set_error($this->client->get_error()); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $result = $this->client->create_transaction($payment->get_amount(), $payment->get_currency(), $payment->get_issuer(), $payment->get_description(), $payment->get_return_url()); if (false !== $result) { $payment->set_transaction_id($result->transaction_id); $payment->set_action_url($result->bank_url); } else { $this->error = $this->client->get_error(); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $request = new Pronamic_WP_Pay_Gateways_ING_KassaCompleet_OrderRequest(); $request->currency = $payment->get_currency(); $request->amount = $payment->get_amount(); $request->merchant_order_id = $payment->get_order_id(); $request->description = $payment->get_description(); $request->return_url = $payment->get_return_url(); // To make the 'Test' meta box work, set payment method to iDEAL if an issuer_id has been set. $issuer = $payment->get_issuer(); $payment_method = $payment->get_method(); if (!empty($issuer)) { $payment_method = Pronamic_WP_Pay_PaymentMethods::IDEAL; $request->issuer = $issuer; } $request->method = Pronamic_WP_Pay_Gateways_ING_KassaCompleet_PaymentMethods::transform($payment_method); $order = $this->client->create_order($request); if ($order) { $payment->set_transaction_id($order->id); $payment->set_action_url($order->transactions[0]->payment_url); } else { $this->error = $this->client->get_error(); } }
/** * 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()); }
/** * Update status of the specified payment * * @param Pronamic_Pay_Payment $payment */ public function update_status(Pronamic_Pay_Payment $payment) { $method = filter_var($_SERVER['REQUEST_METHOD'], FILTER_SANITIZE_STRING); $data = array(); switch ($method) { case 'GET': $data = $_GET; break; case 'POST': $data = $_POST; // WPCS: CSRF OK break; } $data = Pronamic_WP_Pay_Buckaroo_Util::urldecode($data); $data = stripslashes_deep($data); $data = $this->client->verify_request($data); if ($data) { $payment->set_transaction_id($data[Pronamic_WP_Pay_Buckaroo_Parameters::PAYMENT]); $payment->set_status(Pronamic_WP_Pay_Buckaroo_Statuses::transform($data[Pronamic_WP_Pay_Buckaroo_Parameters::STATUS_CODE])); $payment->set_consumer_iban($data[Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_IBAN]); $payment->set_consumer_bic($data[Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_BIC]); $payment->set_consumer_name($data[Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_NAME]); $labels = array(Pronamic_WP_Pay_Buckaroo_Parameters::PAYMENT => __('Payment', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::PAYMENT_METHOD => __('Payment Method', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::STATUS_CODE => __('Status Code', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::STATUS_CODE_DETAIL => __('Status Code Detail', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::STATUS_MESSAGE => __('Status Message', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::INVOICE_NUMBER => __('Invoice Number', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::AMOUNT => __('Amount', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::CURRENCY => __('Currency', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::TIMESTAMP => __('Timestamp', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_ISSUER => __('Service iDEAL Consumer Issuer', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_NAME => __('Service iDEAL Consumer Name', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_IBAN => __('Service iDEAL Consumer IBAN', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::SERVICE_IDEAL_CONSUMER_BIC => __('Service iDEAL Consumer BIC', 'pronamic_ideal'), Pronamic_WP_Pay_Buckaroo_Parameters::TRANSACTIONS => __('Transactions', 'pronamic_ideal')); $note = ''; $note .= '<p>'; $note .= __('Buckaroo data:', 'pronamic_ideal'); $note .= '</p>'; $note .= '<dl>'; foreach ($labels as $key => $label) { if (isset($data[$key])) { $note .= sprintf('<dt>%s</dt>', esc_html($label)); $note .= sprintf('<dd>%s</dd>', esc_html($data[$key])); } } $note .= '</dl>'; $payment->add_note($note); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $order_id = $payment->get_order_id(); $purchase_id = empty($order_id) ? $payment->get_id() : $order_id; // Maximum length for purchase ID is 16 characters, otherwise an error will occur: // ideal_sisow_error - purchaseid too long (16) $purchase_id = substr($purchase_id, 0, 16); $transaction_request = new Pronamic_WP_Pay_Gateways_Sisow_TransactionRequest(); $transaction_request->merchant_id = $this->config->merchant_id; $transaction_request->shop_id = $this->config->shop_id; $payment_method = $payment->get_method(); if (is_null($payment_method)) { $payment_method = Pronamic_WP_Pay_PaymentMethods::IDEAL; } $this->set_payment_method($payment_method); switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::BANK_TRANSFER: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::OVERBOEKING; break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::IDEAL; break; case Pronamic_WP_Pay_PaymentMethods::BANCONTACT: case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::MISTER_CASH; break; case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: $transaction_request->payment = Pronamic_WP_Pay_Gateways_Sisow_PaymentMethods::CREDIT_CARD; break; } $transaction_request->set_purchase_id($purchase_id); $transaction_request->amount = $payment->get_amount(); $transaction_request->issuer_id = $payment->get_issuer(); $transaction_request->test_mode = Pronamic_IDeal_IDeal::MODE_TEST === $this->config->mode; $transaction_request->set_entrance_code($payment->get_entrance_code()); $transaction_request->description = $payment->get_description(); $transaction_request->billing_mail = $payment->get_email(); $transaction_request->return_url = $payment->get_return_url(); $transaction_request->cancel_url = $payment->get_return_url(); $transaction_request->callback_url = $payment->get_return_url(); $transaction_request->notify_url = $payment->get_return_url(); $result = $this->client->create_transaction($transaction_request); if (false !== $result) { $payment->set_transaction_id($result->id); $payment->set_action_url($result->issuer_url); } else { $this->error = $this->client->get_error(); } }
/** * Start * * @see Pronamic_WP_Pay_Gateway::start() * @param Pronamic_Pay_PaymentDataInterface $data */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { $payment->set_transaction_id(md5(time() . $data->get_order_id())); $payment->set_action_url($this->client->get_action_url()); $this->client->set_customer_language(Pronamic_WP_Pay_Gateways_OmniKassa_LocaleHelper::transform($data->get_language())); $this->client->set_currency_numeric_code($data->get_currency_numeric_code()); $this->client->set_order_id($data->get_order_id()); $this->client->set_normal_return_url(home_url('/')); $this->client->set_automatic_response_url(home_url('/')); $this->client->set_amount($data->get_amount()); $this->client->set_transaction_reference($payment->get_transaction_id()); switch ($payment_method) { /* * If this field is not supplied in the payment request, then * by default the customer will be redirected to the Rabo * OmniKassa payment page. On the payment page, the * customer can choose from the payment methods * offered by the Rabo OmniKassa. These are the payment * methods: IDEAL, MINITIX, VISA, MASTERCARD, * MAESTRO, V PAY and BCMC. * * Exception: the register services INCASSO (direct debit), * ACCEPTGIRO (giro collection form) and REMBOURS * (cash on delivery) are not displayed on the Rabo * OmniKassa payment page by default. * If you wish to offer these register services to the * customer on the payment page, then you need to * always populate the paymentMeanBrandList field with * all the payment methods you wish to offer (provided * these have been requested and activated): IDEAL, * MINITIX, VISA, MASTERCARD, MAESTRO, VPAY, BCMC, * INCASSO, ACCEPTGIRO, REMBOURS. * * If you let the customer choose the payment method * while still in your webshop, then you must populate * this field of the payment request with only the selected * payment method. Populating this field with only one * payment method will instruct the Rabo OmniKassa to * redirect the customer directly to the payment page for * this payment method. */ case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MAESTRO); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MASTERCARD); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::VISA); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::VPAY); break; case Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::INCASSO); break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::IDEAL); break; case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::BCMC); break; case Pronamic_WP_Pay_PaymentMethods::MINITIX: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MINITIX); break; default: $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::IDEAL); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MINITIX); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::VISA); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MASTERCARD); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::MAESTRO); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::VPAY); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::BCMC); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::INCASSO); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::ACCEPTGIRO); $this->client->add_payment_mean_brand(Pronamic_WP_Pay_Gateways_OmniKassa_PaymentMethods::REMBOURS); break; } }
/** * 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(); } }