コード例 #1
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();
     }
 }