$log_id = $class_plog->add("R", $received, $txaction, $request); $rule1 = $request['portalid'] == PAYONE_PORTAL_ID || $request['portalid'] == PAYONE_PORTAL_ID_NO_EMAIL || $request['portalid'] == PAYONE_PORTAL_ID_JULIEGRACE; $rule2 = $request['key'] == md5(PAYONE_PORTAL_KEY); $response = ""; $status = ""; if ($rule1 && $rule2) { if (strtoupper($request['mode']) != 'LIVE') { $response = "TSOK"; } else { $class_payone = new payone(); $payi = new payone_invoice('payone_txid', $payone_txid); $response = "TSOK"; $set_order_as_paid = false; switch ($txaction) { case 'appointed': $payi->confirmAppointed(); break; case 'capture': $payi->confirmCaptured(); if ($request['balance'] <= 0) { if ($request['balance'] == 0) { if ($payi->detail['invoice_complete_status'] == 'F') { //set as refund processed for refund $status = 'D'; } elseif ($payi->detail['invoice_complete_status'] == 'A') { //if user not paid yet then returned all products, set as invoice cancelled $status = '3'; } else { //set as paid for non-refund $status = 'P'; }