/** * @param Payone_Api_Request_Debit $request */ protected function mapDefaultDebitParameters(Payone_Api_Request_Debit $request) { $order = $this->getOrder(); $transaction = $this->getFactory()->getModelTransaction(); $transaction = $transaction->loadByPayment($order->getPayment()); $request->setTxid($order->getPayment()->getLastTransId()); $request->setSequencenumber($transaction->getNextSequenceNumber()); $request->setCurrency($order->getOrderCurrencyCode()); $request->setAmount($this->getAmount() * -1); $request->setRequest(Payone_Api_Enum_RequestType::DEBIT); $request->setUseCustomerdata('yes'); }
public function refundAmount($data) { $this->log("refunding amount\n" . print_r($data, true)); $config = $this->getConfig(); $global_config = $config['global']; $standard_parameters = $this->getStandardParameters('debit', $global_config); unset($standard_parameters['responsetype']); unset($standard_parameters['successurl']); unset($standard_parameters['errorurl']); unset($standard_parameters['hash']); $request_parameters = array('aid' => $global_config['subaccount_id'], 'key' => $global_config['key']); $params = array_merge($standard_parameters, $request_parameters); $builder = new Payone_Builder($this->getPayoneConfig()); $service = $builder->buildServicePaymentDebit(); $request = new Payone_Api_Request_Debit($params); $request->setCurrency($data['currency']); $request->setSequencenumber($this->_getNextSequencenumber($data['txid'])); $request->setTxid($data['txid']); if (isset($data['positions'])) { $request->setInvoicing($this->_getInvoicingTransaction($data)); $request->setAmount(round($this->amount, 2) * -1); } else { $request->setAmount(round($data['amount'], 2) * -1); } if (false && !empty($data['bankaccount'])) { $payment = new Payone_Api_Request_Parameter_Refund_PaymentMethod_BankAccount(); $payment->setBankaccount($data['bankaccount']); $payment->setBankbranchcode($data['bankbranchcode']); $payment->setBankcheckdigit($data['bankcheckdigit']); $payment->setBankcode($data['bankcode']); $payment->setBankcountry($data['bankcountry']); $request->setPayment($payment); } $this->log("debit request:\n" . print_r($request, true)); $response = $service->debit($request); if ($response instanceof Payone_Api_Response_Debit_Approved) { $this->log("SUCCESS refunding response:\n" . print_r($response, true)); } else { if ($response instanceof Payone_Api_Response_Error) { $this->log("ERROR refunding response:\n" . print_r($response, true)); } } return $response; }