Esempio n. 1
0
 /**
  * Gets payment for current operation
  *
  * @return  mixed  RApi object with information on success, boolean false on failure.
  */
 public function getPayment()
 {
     if (!empty($this->paymentObject)) {
         return $this->paymentObject;
     }
     if (!empty($this->paymentId)) {
         $this->paymentObject = RApiPaymentHelper::getPaymentById($this->paymentId);
     }
     if (empty($this->paymentObject) && (!empty($this->orderId) && !empty($this->extensionName))) {
         $this->paymentObject = RApiPaymentHelper::getPaymentByExtensionId($this->extensionName, $this->orderId);
     }
     // Set up default variables if not set
     if ($this->paymentObject) {
         if (empty($this->paymentName)) {
             $this->paymentName = $this->paymentObject->payment_name;
         }
         $this->extensionName = $this->paymentObject->extension_name;
         $this->ownerName = $this->paymentObject->owner_name;
         $this->orderId = $this->paymentObject->order_id;
         $this->paymentId = $this->paymentObject->id;
     }
     return $this->paymentObject;
 }
Esempio n. 2
0
 /**
  * Returns details about the payment
  *
  * @param   string  $extensionName  Extension name (ex: com_content)
  * @param   array   $orderData      Extension Order data
  *
  * @return object
  */
 protected function getPaymentByExtensionOrderData($extensionName, $orderData)
 {
     $orderId = empty($orderData['order_id']) ? $orderData['id'] : $orderData['order_id'];
     $payment = RApiPaymentHelper::getPaymentByExtensionId($extensionName, $orderId);
     $restrictedData = array('id', 'extension_name', 'payment_name', 'sandbox', 'created_date', 'modified_date', 'confirmed_date', 'transaction_id', 'amount_total', 'amount_paid', 'coupon_code', 'customer_note', 'status');
     if (!$payment) {
         $ownerName = !empty($orderData['owner_name']) ? $orderData['owner_name'] : '';
         $createData = array();
         foreach ($orderData as $key => $value) {
             if (!in_array($key, $restrictedData)) {
                 $createData[$key] = $orderData[$key];
             }
         }
         // Create new payment based on order data
         $this->createPayment($extensionName, $ownerName, $createData);
         $payment = RApiPaymentHelper::getPaymentByExtensionId($extensionName, $orderId);
     } else {
         // We will update payment with provided data if it is different than originally provided
         $ownerName = !empty($orderData['owner_name']) ? $orderData['owner_name'] : $payment->owner_name;
         $updateData = JArrayHelper::fromObject($payment);
         foreach ($orderData as $key => $value) {
             if (!in_array($key, $restrictedData)) {
                 $updateData[$key] = $orderData[$key];
             }
         }
         // Create new payment based on order data
         $this->createPayment($extensionName, $ownerName, $updateData);
     }
     return $payment;
 }