コード例 #1
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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);
 }
コード例 #2
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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();
     }
 }
コード例 #3
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 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();
     }
 }
コード例 #4
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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();
     }
 }
コード例 #5
0
ファイル: Util.php プロジェクト: wp-pay-gateways/buckaroo
 /**
  * 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;
 }
コード例 #6
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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();
     }
 }
コード例 #7
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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);
     }
 }
コード例 #8
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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();
     }
 }
コード例 #9
0
 /**
  * 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()));
 }
コード例 #10
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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));
 }
コード例 #11
0
ファイル: Gateway.php プロジェクト: wp-pay-gateways/ogone
 /**
  * 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('/'));
 }
コード例 #12
0
ファイル: Gateway.php プロジェクト: wp-pay-gateways/sisow
 /**
  * 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();
     }
 }
コード例 #13
0
ファイル: Gateway.php プロジェクト: wp-pay-gateways/ogone
 /**
  * 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('/')));
         }
     }
 }
コード例 #14
0
ファイル: Gateway.php プロジェクト: wp-pay-gateways/ogone
 /**
  * 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()));
 }
コード例 #15
0
ファイル: Extension.php プロジェクト: daanbakker1995/vanteun
 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;
     }
 }
コード例 #16
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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();
     }
 }
コード例 #17
0
ファイル: Extension.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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;
 }
コード例 #18
0
ファイル: Gateway.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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));
 }
コード例 #19
0
 /**
  * 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;
     }
 }
コード例 #20
0
ファイル: Extension.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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;
     }
 }
コード例 #21
0
ファイル: Extension.php プロジェクト: daanbakker1995/vanteun
 /**
  * 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;
     }
 }