// check if transaction was approved $status = $_POST["status"]; $failReason = $_POST["failReason"]; if ($status != "APPROVED") { echo "<br><br>"; echo "Transaction declined!<br>"; echo "Error: '{$failReason}'<br><br>"; report_blocked_transaction(); exit; } // check if we was preauthorizing $x_auth = $_POST['x_auth']; if ($x_auth == 1) { process_auth(); } else { process_payment(); } ?> </body> </html> <?php // // // logic functions // // function get_result_from_code($approval_code) { $appfields = explode(':', $approval_code);
$logger->log('txn_error: '.$SofortLibTransactionData->getError(), VI_LOG_LEVEL_ERROR); die(); } else { ob_start(); var_dump($output); $result = ob_get_clean(); $logger->log('output: '.$result, VI_LOG_LEVEL_DEBUG); } */ if (isset($_POST['user_variable_0'])) { $name = $_POST['user_variable_0']; } else { die('Invalid POST data'); } if (isset($_POST['user_variable_1'])) { $email = $_POST['user_variable_1']; } else { die('Invalid POST data'); } if (isset($_POST['user_variable_2'])) { $type = $_POST['user_variable_2']; } else { die('Invalid POST data'); } $payment_status = 'completed'; // process payment if (true) { // TODO: better verification require_once __DIR__ . '/database-model.php'; process_payment($payment_status, 'sofortueberweisung', $txn_id, $name, $email, $type); }
function processing($payment_status, $params) { global $paypal_email, $paypal_currency; $invoice_id = $params['item_number']; $invoice = PackageInvoice::find_by_id($invoice_id); switch ($payment_status) { case "Canceled_Reversal": $invoice->package_status = 'Canceled_Reversal'; $invoice->update_package_status(); break; case "Completed": if ($paypal_email == $params['receiver_email'] && $paypal_currency == $params['mc_currency'] && $invoice->amount == $params['mc_gross'] && $invoice->package_status != "Completed") { $param['payment_status'] = "Completed"; //what is the status of the payment $param['amount'] = $params['mc_gross']; // how much was paid for this total amount for each item $param['currency'] = $paypal_currency; //what currecy they used to pay for this $param['receiver_id'] = $params['receiver_id']; // what is the id of person who is paying $param['payment_email'] = $params['payer_email']; // what email have they used to pay $param['txn_id'] = $params['txn_id']; // txt id $param['txn_type'] = $params['txn_type']; // how are they pay for this web or ext. $param['payer_status'] = $params['payer_status']; //is user verfied by the method they pay from $param['residence_country'] = $params['residence_country']; //which country does user belogn to //$params['origin'] = ""; //where is the payment come from $param['payment_method'] = "paypal"; // what methoid of payment they used e.g. paypal, ccbill $param['payment_vars'] = addslashes(serialize($params)); //get all var which are return from online site. $param['payment_type'] = $params['payment_type']; //how they pay for this $param['reason'] = ""; // if they cancel then tell user why process_payment($invoice_id, $param); } break; case "Denied": // denied by merchant //$invoice->id = $invoice_id; $invoice->package_status = 'Denied'; $invoice->update_package_status(); break; case "Failed": // only happens when payment is from customers' bank account //$invoice->id = $invoice_id; $invoice->package_status = 'Failed'; $invoice->update_package_status(); break; case "Pending": //$invoice->id = $invoice_id; $invoice->package_status = 'Pending'; $invoice->update_package_status(); break; case "Refunded": //$invoice->id = $invoice_id; $invoice->package_status = 'Refunded'; $invoice->update_package_status(); break; case "Reversed": //$invoice->id = $invoice_id; $invoice->package_status = 'Reversed'; $invoice->update_package_status(); break; case "Expired": //$invoice->id = $invoice_id; $invoice->package_status = 'Expired'; $invoice->update_package_status(); break; default: break; } }
// check that receiver_email is your Primary PayPal email // check that payment_amount/payment_currency are correct // process the notification // assign posted variables to local variables // $item_name = $_POST['item_name']; // $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; // $payment_amount = $_POST['mc_gross']; // $payment_currency = $_POST['mc_currency']; $txn_id = $_POST['txn_id']; // $receiver_email = $_POST['receiver_email']; // $payer_email = $_POST['payer_email']; $custom = $_POST['custom']; // IPN message values depend upon the type of notification sent. // To loop through the &_POST array and print the NV pairs to the screen: /* foreach($_POST as $key => $value) { echo $key." = ". $value."<br>"; } */ // process payment require_once __DIR__ . '/database-model.php'; if ($payment_status == 'Completed') { $payment_status = 'completed'; } $fields = explode('&&', $custom); $name = $fields[0]; $email = $fields[1]; $type = $fields[2]; process_payment($payment_status, 'paypal', $txn_id, $name, $email, $type); }
$param['txn_type'] = "web"; // how are they pay for this web or ext. $param['payer_status'] = "N/A"; //is user verfied by the method they pay from $param['residence_country'] = "N/A"; //which country does user belogn to //$param['origin'] = ""; //where is the payment come from $param['payment_method'] = "free"; // what methoid of payment they used e.g. paypal, ccbill $param['payment_vars'] = "N/A"; //get all var which are return from online site. $param['payment_type'] = "free"; //how they pay for this $param['reason'] = "None"; // if they cancel then tell user why process_payment($invoice_id, $param); $smarty->assign('order_number', $invoice_id); $smarty->assign('num_of_posts', $packageinvoice->posts_quantity); $smarty->assign('price', $packageinvoice->amount); $smarty->assign('status', "Completed"); $smarty->assign('payment_from', $payment_from); $html_title = SITE_NAME . " - Thank you for your payment "; $smarty->assign('lang', $lang); $smarty->assign('message', $message); $smarty->assign('rendered_page', $smarty->fetch('employer/thankyou.tpl')); } elseif ($payment_cancel != '' || isset($payment_cancel)) { $invoice = PackageInvoice::find_by_id($invoice_id); $invoice->package_status = 'Cancelled'; //$invoice->processed_date = date("Y-m-d H:i:s", time() ); $invoice->update_package_status(); $invoice_item = new Invoice();