/** * Start * * @param Pronamic_Pay_PaymentDataInterface $data * @param Pronamic_Pay_Payment $payment * * @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()); // Buckaroo uses 'nl-NL' instead of 'nl_NL' $culture = str_replace('_', '-', $data->get_language_and_country()); switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::IDEAL: $this->client->set_payment_method(Pronamic_WP_Pay_Buckaroo_PaymentMethods::IDEAL); break; case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: $this->client->add_requested_service(Pronamic_WP_Pay_Buckaroo_PaymentMethods::AMERICAN_EXPRESS); $this->client->add_requested_service(Pronamic_WP_Pay_Buckaroo_PaymentMethods::MAESTRO); $this->client->add_requested_service(Pronamic_WP_Pay_Buckaroo_PaymentMethods::MASTERCARD); $this->client->add_requested_service(Pronamic_WP_Pay_Buckaroo_PaymentMethods::VISA); break; case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $this->client->set_payment_method(Pronamic_WP_Pay_Buckaroo_PaymentMethods::BANCONTACT_MISTER_CASH); break; } $this->client->set_culture($culture); $this->client->set_currency($data->get_currency()); $this->client->set_description($data->get_description()); $this->client->set_amount($data->get_amount()); $this->client->set_invoice_number($payment->get_id()); $return_url = add_query_arg('payment', $payment->get_id(), home_url('/')); $this->client->set_return_url($return_url); $this->client->set_return_cancel_url($return_url); $this->client->set_return_error_url($return_url); $this->client->set_return_reject_url($return_url); }
/** * 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(); } }
public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { $url = add_query_arg('payment', $payment->get_id(), home_url('/')); $transaction_description = $data->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 = $url; $merchant->redirect_url = $url; $merchant->cancel_url = $url; $merchant->close_window = 'false'; $customer = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Customer(); $customer->locale = $data->get_language_and_country(); $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 = $data->getCustomerName(); $customer->email = $data->get_email(); $transaction = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_Transaction(); $transaction->id = uniqid(); $transaction->currency = $data->get_currency(); $transaction->amount = $data->get_amount(); $transaction->description = $transaction_description; switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::IDEAL: $gateway_info = new Pronamic_WP_Pay_Gateways_MultiSafepay_Connect_GatewayInfo(); $gateway_info->issuer_id = $data->get_issuer_id(); $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 * * @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 invoice number. * * @param string $invoice_number * @param Pronamic_Pay_PaymentDataInterface $data * @param Pronamic_Pay_Payment $payment */ public static function get_invoice_number($invoice_number, Pronamic_Pay_Payment $payment) { // Replacements definition $replacements = array('{order_id}' => $payment->get_order_id(), '{payment_id}' => $payment->get_id()); // Find and replace $invoice_number = str_replace(array_keys($replacements), array_values($replacements), $invoice_number, $count); // Make sure there is an dynamic part in the order ID if (0 === $count) { $invoice_number .= $payment->get_id(); } return $invoice_number; }
/** * 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 an transaction * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_PaymentDataInterface $data, Pronamic_Pay_Payment $payment, $payment_method = null) { try { $locale = $data->get_language_and_country(); $language = substr($locale, 0, 2); $country = substr($locale, 3, 2); /* * Order ID * Your unique order number. * This can be auto incremental number from your payments table * * Data type = String * Max length = 10 * Required = Yes */ // Payment object $payment_object = new Icepay_PaymentObject(); $payment_object->setAmount(Pronamic_WP_Pay_Util::amount_to_cents($data->get_amount()))->setCountry($country)->setLanguage($language)->setReference($data->get_order_id())->setDescription($data->get_description())->setCurrency($data->get_currency())->setIssuer($data->get_issuer_id())->setOrderID($payment->get_id()); // Payment method // @since 1.2.0 $icepay_method = null; switch ($payment_method) { case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: // @see https://github.com/icepay/icepay/blob/2.4.0/api/paymentmethods/creditcard.php $icepay_method = new Icepay_Paymentmethod_Creditcard(); break; case Pronamic_WP_Pay_PaymentMethods::DIRECT_DEBIT: // @see https://github.com/icepay/icepay/blob/2.4.0/api/paymentmethods/ddebit.php $icepay_method = new Icepay_Paymentmethod_Ddebit(); break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: // @see https://github.com/icepay/icepay/blob/2.4.0/api/paymentmethods/ideal.php $icepay_method = new Icepay_Paymentmethod_Ideal(); break; case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: // @see https://github.com/icepay/icepay/blob/2.4.0/api/paymentmethods/mistercash.php $icepay_method = new Icepay_Paymentmethod_Mistercash(); break; } if (isset($icepay_method)) { // @see https://github.com/icepay/icepay/blob/2.4.0/api/icepay_api_base.php#L342-L353 $payment_object->setPaymentMethod($icepay_method->getCode()); } // Protocol $protocol = is_ssl() ? 'https' : 'http'; // Basic mode $basicmode = Icepay_Basicmode::getInstance(); $basicmode->setMerchantID($this->config->merchant_id)->setSecretCode($this->config->secret_code)->setProtocol($protocol)->validatePayment($payment_object); // Payment $payment->set_action_url($basicmode->getURL()); } catch (Exception $exception) { $this->error = new WP_Error('icepay_error', $exception->getMessage(), $exception); } }
/** * 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 * * @see Pronamic_WP_Pay_Gateway::start() * @param Pronamic_Pay_Payment $payment */ public function start(Pronamic_Pay_Payment $payment) { $payment->set_action_url($this->client->get_action_url()); $this->client->set_payment_id($payment->get_id()); $this->client->set_language($payment->get_locale()); $this->client->set_currency_numeric_code($payment->get_currency_numeric_code()); $this->client->set_order_id(Pronamic_WP_Pay_Gateways_EMS_ECommerce_Util::get_order_id($this->config->order_id, $payment)); $this->client->set_return_url(home_url('/')); $this->client->set_notification_url(home_url('/')); $this->client->set_amount($payment->get_amount()); $this->client->set_issuer_id($payment->get_issuer()); $this->client->set_payment_method(Pronamic_WP_Pay_Gateways_EMS_ECommerce_PaymentMethods::transform($payment->get_method())); }
/** * 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 transaction with the specified data * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $payment->set_action_url($this->client->get_payment_server_url()); $ogone_data = $this->client->get_data(); // General $ogone_data_general = new Pronamic_WP_Pay_Gateways_Ogone_DataGeneralHelper($ogone_data); $ogone_data_general->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()); // URL's $ogone_url_helper = new Pronamic_WP_Pay_Gateways_Ogone_DataUrlHelper($ogone_data); $ogone_url_helper->set_accept_url(add_query_arg('status', Pronamic_WP_Pay_Statuses::SUCCESS, $payment->get_return_url()))->set_cancel_url(add_query_arg('status', Pronamic_WP_Pay_Statuses::CANCELLED, $payment->get_return_url()))->set_decline_url(add_query_arg('status', Pronamic_WP_Pay_Statuses::FAILURE, $payment->get_return_url()))->set_exception_url(add_query_arg('status', Pronamic_WP_Pay_Statuses::FAILURE, $payment->get_return_url()))->set_back_url(home_url('/'))->set_home_url(home_url('/')); }
/** * 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_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 * * @see Pronamic_WP_Pay_Gateway::start() */ public function start(Pronamic_Pay_Payment $payment) { $payment->set_action_url($this->client->get_payment_server_url()); $ogone_data = $this->client->get_data(); // General $ogone_data_general = new Pronamic_WP_Pay_Gateways_Ogone_DataGeneralHelper($ogone_data); $ogone_data_general->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()); // Payment method // @see https://github.com/wp-pay-gateways/ogone/wiki/Brands switch ($payment->get_method()) { case Pronamic_WP_Pay_PaymentMethods::CREDIT_CARD: /* * Set credit card payment method. * @since 1.2.3 */ $ogone_data_general->set_payment_method(Pronamic_WP_Pay_Gateways_Ogone_PaymentMethods::CREDIT_CARD); break; case Pronamic_WP_Pay_PaymentMethods::IDEAL: /* * Set iDEAL payment method. * @since 1.2.3 */ $ogone_data_general->set_brand(Pronamic_WP_Pay_Gateways_Ogone_Brands::IDEAL)->set_payment_method(Pronamic_WP_Pay_Gateways_Ogone_PaymentMethods::IDEAL); break; case Pronamic_WP_Pay_PaymentMethods::BANCONTACT: case Pronamic_WP_Pay_PaymentMethods::MISTER_CASH: $ogone_data_general->set_brand(Pronamic_WP_Pay_Gateways_Ogone_Brands::BCMC)->set_payment_method(Pronamic_WP_Pay_Gateways_Ogone_PaymentMethods::CREDIT_CARD); break; } // Parameter Variable $param_var = Pronamic_WP_Pay_Gateways_Ogone_Util::get_param_var($this->config->param_var); if (!empty($param_var)) { $ogone_data->set_field('PARAMVAR', $param_var); } // Template Page $template_page = $this->config->param_var; if (!empty($template_page)) { $ogone_data->set_field('TP', $template_page); } // URL's $ogone_url_helper = new Pronamic_WP_Pay_Gateways_Ogone_DataUrlHelper($ogone_data); $ogone_url_helper->set_accept_url(add_query_arg('status', 'accept', $payment->get_return_url()))->set_cancel_url(add_query_arg('status', 'cancel', $payment->get_return_url()))->set_decline_url(add_query_arg('status', 'decline', $payment->get_return_url()))->set_exception_url(add_query_arg('status', 'exception', $payment->get_return_url())); }
public static function status_update(Pronamic_Pay_Payment $payment, $can_redirect = false) { $data = new Pronamic_WP_Pay_Extensions_S2Member_PaymentData(array('level' => get_post_meta($payment->get_id(), '_pronamic_payment_s2member_level', true), 'period' => get_post_meta($payment->get_id(), '_pronamic_payment_s2member_period', true))); $url = $data->get_normal_return_url(); switch ($payment->status) { case Pronamic_WP_Pay_Statuses::CANCELLED: $url = $data->get_cancel_url(); break; case Pronamic_WP_Pay_Statuses::EXPIRED: $url = $data->get_error_url(); break; case Pronamic_WP_Pay_Statuses::FAILURE: $url = $data->get_error_url(); break; case Pronamic_WP_Pay_Statuses::SUCCESS: $url = $data->get_success_url(); break; case Pronamic_WP_Pay_Statuses::OPEN: $url = $data->get_normal_return_url(); break; } if ($url && $can_redirect) { wp_redirect($url, 303); exit; } }
/** * Update status of the specified payment * * @param Pronamic_Pay_Payment $payment */ public function update_status(Pronamic_Pay_Payment $payment) { $result = $this->client->get_payment_status($payment->get_id()); if ($result) { $payment->set_status(Pronamic_WP_Pay_Gateways_PayDutch_States::transform($result->state)); $payment->set_consumer_name($result->consumername); $payment->set_consumer_account_number($result->consumeraccount); $payment->set_consumer_city($result->consumercity); // $payment->set_consumer_country( $result->consumercountry ); } else { $this->error = $this->client->get_error(); } }
/** * Source text * * @param text $text * @param Pronamic_Pay_Payment $payment * @return string */ public static function source_text($text, Pronamic_Pay_Payment $payment) { $text = ''; $text .= __('Membership', 'pronamic_ideal') . '<br />'; $text .= sprintf('<a href="%s">%s</a>', add_query_arg(array('page' => 'membershipgateways', 'action' => 'transactions', 'gateway' => 'pronamic_ideal'), admin_url('admin.php')), sprintf(__('Transaction #%s', 'pronamic_ideal'), $payment->get_id())); return $text; }
/** * Payment * * @see Pronamic_WP_Pay_Gateway::payment() * @param Pronamic_Pay_Payment $payment */ public function payment(Pronamic_Pay_Payment $payment) { /* * Schedule status requests * http://pronamic.nl/wp-content/uploads/2011/12/iDEAL_Advanced_PHP_EN_V2.2.pdf (page 19) * * @todo * Considering the number of status requests per transaction: * - Maximum of five times per transaction; * - Maximum of two times during the expirationPeriod; * - After the expirationPeriod not more often than once per 60 minutes; * - No status request after a final status has been received for a transaction; * - No status request for transactions older than 7 days. */ /* * The function wp_schedule_single_event() uses the arguments array as an key for the event, * that's why we also add the time to this array, besides that it's also much clearer on * the Cron View (http://wordpress.org/extend/plugins/cron-view/) page */ $time = time(); // Examples of possible times when a status request can be executed: // 30 seconds after a transaction request is sent wp_schedule_single_event($time + 30, 'pronamic_ideal_check_transaction_status', array('payment_id' => $payment->get_id(), 'seconds' => 30)); }
/** * Status update */ public function status_update(Pronamic_Pay_Payment $payment, $can_redirect = false) { $user_id = get_post_meta($payment->get_id(), '_pronamic_payment_membership_user_id', true); $sub_id = get_post_meta($payment->get_id(), '_pronamic_payment_membership_subscription_id', true); $amount = $payment->get_amount(); $currency = $payment->get_currency(); $status = $payment->get_status(); $note = ''; // Membership record transaction // @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/classes/class.gateway.php#L176 $this->pronamic_record_transaction($user_id, $sub_id, $amount, $currency, time(), $payment->get_id(), $status, $note); switch ($status) { case Pronamic_WP_Pay_Statuses::CANCELLED: break; case Pronamic_WP_Pay_Statuses::EXPIRED: break; case Pronamic_WP_Pay_Statuses::FAILURE: break; case Pronamic_WP_Pay_Statuses::OPEN: // @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/gateways/gateway.paypalexpress.php#L871 do_action('membership_payment_pending', $user_id, $sub_id, $amount, $currency, $payment->get_id()); break; case Pronamic_WP_Pay_Statuses::SUCCESS: $member = new M_Membership($user_id); if ($member) { $member->create_subscription($sub_id, $this->gateway); } // Added for affiliate system link // @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/gateways/gateway.paypalexpress.php#L790 do_action('membership_payment_processed', $user_id, $sub_id, $amount, $currency, $payment->get_id()); // @see http://plugins.trac.wordpress.org/browser/membership/tags/3.4.4.1/membershipincludes/gateways/gateway.paypalexpress.php#L901 do_action('membership_payment_subscr_signup', $user_id, $sub_id); break; } }
/** * Update lead status of the specified payment * * @param Pronamic_Pay_Payment $payment * @param bool $can_redirect */ public static function status_update(Pronamic_Pay_Payment $payment, $can_redirect = true) { // Get return URLs $url_return = get_post_meta($payment->get_id(), '_pronamic_payment_url_return', true); $url_success = get_post_meta($payment->get_id(), '_pronamic_payment_url_success', true); $url_cancel = get_post_meta($payment->get_id(), '_pronamic_payment_url_cancel', true); $url_error = get_post_meta($payment->get_id(), '_pronamic_payment_url_error', true); $url = $url_return; $status = Pronamic_WP_Pay_Extensions_EventEspresso_PaymentStatuses::PENDING; // Status switch ($payment->get_status()) { case Pronamic_WP_Pay_Statuses::CANCELLED: $url = $url_cancel; $status = Pronamic_WP_Pay_Extensions_EventEspresso_PaymentStatuses::CANCELLED; break; case Pronamic_WP_Pay_Statuses::EXPIRED: $url = $url_error; $status = Pronamic_WP_Pay_Extensions_EventEspresso_PaymentStatuses::FAILED; break; case Pronamic_WP_Pay_Statuses::FAILURE: $url = $url_error; $status = Pronamic_WP_Pay_Extensions_EventEspresso_PaymentStatuses::FAILED; break; case Pronamic_WP_Pay_Statuses::SUCCESS: $url = $url_success; $status = Pronamic_WP_Pay_Extensions_EventEspresso_PaymentStatuses::APPROVED; break; } if (version_compare(EVENT_ESPRESSO_VERSION, '4.6', '>=')) { // Transaction $transaction_processor = EE_Registry::instance()->load_class('Transaction_Processor'); $ee_transaction = EEM_Transaction::instance()->get_one_by_ID($payment->get_source_id()); if ($transaction_processor->reg_step_completed($ee_transaction, 'finalize_registration')) { // Set redirect URL to thank you page $url = EE_Config::instance()->core->thank_you_page_url(array('e_reg_url_link' => $ee_transaction->primary_registration()->reg_url_link(), 'ee_payment_method' => 'pronamic')); } else { $ee_payment = $ee_transaction->last_payment(); // Payment status has changed, save. if ($ee_payment && $ee_payment->status() !== $status) { $ee_payment->set_status($status); $ee_payment->save(); } if ($can_redirect) { $payment_processor = EE_Registry::instance()->load_core('Payment_Processor'); $payment_processor->finalize_payment_for($ee_transaction, true); } } } // Redirect if ($can_redirect) { wp_redirect($url, 303); exit; } }
/** * Update lead status of the specified payment * * @param Pronamic_Pay_Payment $payment */ public static function status_update(Pronamic_Pay_Payment $payment, $can_redirect = false) { $merchant = new Pronamic_WP_Pay_Extensions_WPeCommerce_IDealMerchant($payment->get_source_id()); $data = new Pronamic_WP_Pay_Extensions_WPeCommerce_PaymentData($merchant); $url = $data->get_normal_return_url(); switch ($payment->status) { case Pronamic_WP_Pay_Statuses::CANCELLED: $merchant->set_purchase_processed_by_purchid(Pronamic_WP_Pay_Extensions_WPeCommerce_WPeCommerce::PURCHASE_STATUS_INCOMPLETE_SALE); // $merchant->set_transaction_details( $payment->transaction->getId(), Pronamic_WP_Pay_Extensions_WPeCommerce_WPeCommerce::PURCHASE_STATUS_INCOMPLETE_SALE ); $url = $data->get_cancel_url(); break; case Pronamic_WP_Pay_Statuses::EXPIRED: break; case Pronamic_WP_Pay_Statuses::FAILURE: break; case Pronamic_WP_Pay_Statuses::SUCCESS: /* * Transactions results * * @see https://github.com/wp-e-commerce/WP-e-Commerce/blob/v3.8.9.5/wpsc-merchants/paypal-pro.merchant.php#L303 */ $session_id = get_post_meta($payment->get_id(), '_pronamic_payment_wpsc_session_id', true); transaction_results($session_id); $merchant->set_purchase_processed_by_purchid(Pronamic_WP_Pay_Extensions_WPeCommerce_WPeCommerce::PURCHASE_STATUS_ACCEPTED_PAYMENT); $url = $data->get_success_url(); break; case Pronamic_WP_Pay_Statuses::OPEN: break; default: break; } if ($can_redirect) { wp_redirect($url, 303); exit; } }