示例#1
0
 public static function listen()
 {
     $data = Pronamic_WP_Pay_Gateways_Ogone_Security::get_request_data();
     $data = array_change_key_case($data, CASE_UPPER);
     if (isset($data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::NC_ERROR], $data['PAYID'], $data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::ORDERID], $data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::STATUS])) {
         $payment_id = $data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::ORDERID];
         $payment = get_pronamic_payment($payment_id);
         Pronamic_WP_Pay_Plugin::update_payment($payment);
     }
 }
示例#2
0
 public static function sign_data(Pronamic_WP_Pay_Gateways_Ogone_Data $data, $pass_phrase, $hash_algorithm)
 {
     $calculation_fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculations_parameters_in();
     $fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculation_fields($calculation_fields, $data->get_fields());
     $signature = Pronamic_WP_Pay_Gateways_Ogone_Security::get_signature($fields, $pass_phrase, $hash_algorithm);
     $data->set_field('SHASign', $signature);
 }
示例#3
0
 /**
  * Update status of the specified payment
  *
  * @param Pronamic_Pay_Payment $payment
  */
 public function update_status(Pronamic_Pay_Payment $payment)
 {
     $data = Pronamic_WP_Pay_Gateways_Ogone_Security::get_request_data();
     $data = $this->client->verify_request($data);
     if (false !== $data) {
         $status = Pronamic_WP_Pay_Gateways_Ogone_Statuses::transform($data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::STATUS]);
         $payment->set_status($status);
         $this->update_status_payment_note($payment, $data);
     }
 }
示例#4
0
 /**
  * Get fields
  *
  * @since 1.2.1
  * @return array
  */
 public function get_fields()
 {
     Pronamic_WP_Pay_Gateways_Ogone_Security::sign_data($this->data, $this->get_pass_phrase_in(), $this->hash_algorithm);
     return $this->data->get_fields();
 }
示例#5
0
 /**
  * Update status of the specified payment
  *
  * @param Pronamic_Pay_Payment $payment
  */
 public function update_status(Pronamic_Pay_Payment $payment)
 {
     $data = Pronamic_WP_Pay_Gateways_Ogone_Security::get_request_data();
     $data = array_change_key_case($data, CASE_UPPER);
     $calculation_fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculations_parameters_out();
     $fields = Pronamic_WP_Pay_Gateways_Ogone_Security::get_calculation_fields($calculation_fields, $data);
     $signature = $data['SHASIGN'];
     $signature_out = Pronamic_WP_Pay_Gateways_Ogone_Security::get_signature($fields, $this->config->sha_out_pass_phrase, $this->config->hash_algorithm);
     if (0 === strcasecmp($signature, $signature_out)) {
         $status = Pronamic_WP_Pay_Gateways_Ogone_Statuses::transform($data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::STATUS]);
         $payment->set_status($status);
     }
 }
示例#6
0
 /**
  * Update status of the specified payment
  *
  * @param Pronamic_Pay_Payment $payment
  */
 public function update_status(Pronamic_Pay_Payment $payment)
 {
     $data = Pronamic_WP_Pay_Gateways_Ogone_Security::get_request_data();
     $data = $this->client->verify_request($data);
     if (false !== $data) {
         $status = Pronamic_WP_Pay_Gateways_Ogone_Statuses::transform($data[Pronamic_WP_Pay_Gateways_Ogone_Parameters::STATUS]);
         $payment->set_status($status);
         $this->update_status_payment_note($payment, $data);
         return;
     }
     $order_id = $payment->format_string($this->config->order_id);
     $status = $this->client->get_order_status($order_id);
     if (null !== $status) {
         $payment->set_status($status);
     }
 }