Skip to content

Instantly share code, notes, and snippets.



Last active Mar 27, 2020
What would you like to do?
Payza payment option for PancakeApp (system/pancake/modules/gateways/models/payza_m.php)
defined('BASEPATH') OR exit('No direct script access allowed');
* The Payza Gateway
* @subpackage Gateway
* @category Payments
class Payza_m extends Gateway {
public $title = 'Payza';
public $frontend_title = 'Payza';
public $version = '1.0';
public $fee = null;
public $autosubmit = true;
public function __construct() {
$this->fields = array(
'merchant_id' => "Payza Email",
'merchant_key' => "Security Code"
public function generate_payment_form($unique_id, $item_name, $amount, $success, $cancel, $notify, $currency_code) {
# Let's round the amount.
$amount = round($amount, 2);
return '<form method="post" action="" name="payza_form"><input type="hidden" name="ap_purchasetype" value="item"/><input type="hidden" name="ap_merchant" value="'.$this->get_field('merchant_id').'"/><input type="hidden" name="ap_itemname" value="'.$item_name.'"/><input type="hidden" name="ap_currency" value="'.$currency_code.'"/><input type="hidden" name="ap_returnurl" value="'.$success.'"/><input type="hidden" name="ap_cancelurl" value="'.$cancel.'"/><input type="hidden" name="ap_quantity" value="1"/><input type="hidden" name="ap_amount" value="'.$amount.'"/><input type="hidden" name="ap_itemcode" value="'.$unique_id.'"/><input type="hidden" name="ap_alerturl" value="'.$notify.'"/><input type="hidden" name="ap_ipnversion" value="1"/><input type="image" name="ap_image" src=""/></form>';
public function process_notification($unique_id) {
$merchant_id = $this->get_field('merchant_id'); // Your Merchant ID
$merchant_key = $this->get_field('merchant_key'); // Your Merchant Key
if ($merchant_key == $_POST['ap_securitycode'] AND $merchant_id == $_POST['ap_merchant']) {
if($_POST['ap_status']=="Success") {
return array(
'txn_id' => $_POST['ap_referencenumber'], // the gateway transaction ID
'payment_gross' => number_format($_POST['ap_totalamount'],2), // the amount paid, rounded to 2 decimal places
'transaction_fee' => number_format($_POST['ap_feeamount'],2), // the fee charged by the gateway, rounded to 2 decimal places
'payment_date' => time(), // a UNIX timestamp for the payment date
'payment_status' => 'Completed', // One of: Completed/Pending/Refunded/Unpaid
'item_name' => $_POST['ap_itemname'], // the item name (passed to the gateway in generate_payment_form())
'is_paid' => true, // true or false, depending on whether payment was successful or not
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.