ошибка при настройке транзакции, объект платежа установлен неправильно - PullRequest
1 голос
/ 22 июня 2019

Пока я создаю транзакцию Paypal программно.мой заказ хранится должным образом, но когда я пытаюсь создать транзакцию для него, это вызывает ошибку, пожалуйста, помогите мне, если что-то потребуется, дайте мне знать, что я могу предоставить любые данные.

Ошибка: Должен быть установлен правильный платежный объект

 if($paymentInfo != ''){
                  $payment = $order->getPayment();
                  $payment->setMethod($pay_method);
                  $payment->setLastTransId($paymentData['id']);
                  $payment->setTransactionId($paymentData['id']);
                  $payment->setAdditionalInformation(
                    [Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS => (array)$paymentData]
                  );
                  // Prepare transaction
                    $transaction = Mage::getModel('sales/order_payment_transaction');
                    $transaction->setOrder($order); // this is order Id
                    $transaction->setOrderId($order->getId());
                    $transaction->setPaymentId($paymentData['id']);
                    $transaction->setTxnId($paymentData['id']); // this is trasaction Id
                    $transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE); // authorise or capture or both
                    $transaction->setIsClosed(true);
                    $transaction->setAdditionalInformation($arrayofdata);
                    try {
                        $transaction->save();
                    }
                    catch (Exception $e) {
                      echo json_encode(array('code' => 5, 'msg' => 'debug', 'transaction error'=> $e->getMessage()));
                      exit();
                    }
                    $payment->addTransactionCommentsToOrder($transaction);
                  // Add transaction to payment
                  $payment->setParentTransactionId(null);
                  echo json_encode(array('code' => 5, 'msg' => 'debug', 'paymentInfo'=>$payment->getData()));
                  exit();
                  // Save payment, transaction and order
                  $payment->save();
                  $order->save();
                  // $transaction->save();
                  $transaction_id = $transaction->getTxnId();

              }
...