示例#1
0
 /**
  * Update transaction record using a data that comes for PayPal Adaptive PAY notifications.
  *
  * @param array  $data
  * @param string $preApprovalKey
  *
  * @return array|null
  */
 protected function updateTransactionDataOnPay($data, $preApprovalKey)
 {
     // Get transaction by ID
     $keys = array("txn_id" => $preApprovalKey);
     $transaction = new Crowdfunding\Transaction(JFactory::getDbo());
     $transaction->load($keys);
     $status = $this->getPaymentStatus($data);
     // Process the status state.
     switch ($status) {
         case "completed":
             if (!$transaction->isCompleted()) {
                 $transaction->setStatus($status);
                 $transaction->setStatusReason("");
             }
             break;
     }
     // Get additional information from transaction.
     $extraData = $this->prepareNotificationExtraData($data, JText::_("PLG_CROWDFUNDINGPAYMENT_PAYPALADAPTIVE_RESPONSE_NOTE_NOTIFICATION"));
     if (!empty($extraData)) {
         $transaction->addExtraData($extraData);
     }
     $transaction->store();
 }