public function ps_pay($pardakht_id, $amount) { $conf = new conf(); require_once "../class/RSAProcessor.class.php"; include_once "../simplejson.php"; $processor = new RSAProcessor("../class/certificate.xml", RSAKeyType::XMLFile); $pardakht = new pardakht_class((int) $pardakht_id); $merchantCode = $conf->ps_merchantCode; $terminalCode = $conf->ps_terminalCode; $redirectAddress = $conf->ps_redirectAddress; $invoiceNumber = $pardakht_id; $timeStamp = str_replace('-', '/', $pardakht->tarikh); $invoiceDate = str_replace('-', '/', $pardakht->tarikh); $action = "1003"; // 1003 : براي درخواست خريد $data = "#" . $merchantCode . "#" . $terminalCode . "#" . $invoiceNumber . "#" . $invoiceDate . "#" . $amount . "#" . $redirectAddress . "#" . $action . "#" . $timeStamp . "#"; $data = sha1($data, true); $data = $processor->sign($data); // امضاي ديجيتال $result = base64_encode($data); // base64_encode $out['invoiceNumber'] = $invoiceNumber; $out['invoiceDate'] = $invoiceDate; $out['amount'] = $amount; $out['terminalCode'] = $terminalCode; $out['merchantCode'] = $merchantCode; $out['redirectAddress'] = $redirectAddress; $out['timeStamp'] = $timeStamp; $out['action'] = $action; $out['sign'] = $result; $outJson = toJSON($out); return $outJson; }
function process_button() { global $osC_Currencies, $osC_ShoppingCart, $osC_Language, $osC_Database; if (MODULE_PAYMENT_BPI_CURRENCY == 'Selected Currency') { $currency = $osC_Currencies->getCode(); } else { $currency = MODULE_PAYMENT_BPI_CURRENCY; } $amount = round($osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $currency), 2); $order = $this->_order_id; $processor = new RSAProcessor('ext/bpiclass/' . MODULE_PAYMENT_BPI_PRIVATE_KEY_FOLDER . '/certificate.xml', RSAKeyType::XMLFile); // Private Key $merchantCode = MODULE_PAYMENT_BPI_MERCHANT_CODE; $terminalCode = MODULE_PAYMENT_BPI_TERMINAL_CODE; $amount = $amount; $redirectAddress = osc_href_link(FILENAME_CHECKOUT, 'process', 'SSL', null, null, true); $invoiceNumber = $order; $timeStamp = date("Y/m/d H:i:s"); $invoiceDate = date("Y/m/d H:i:s"); $action = "1003"; $data = "#" . $merchantCode . "#" . $terminalCode . "#" . $invoiceNumber . "#" . $invoiceDate . "#" . $amount . "#" . $redirectAddress . "#" . $action . "#" . $timeStamp . "#"; $data = sha1($data, true); $data = $processor->sign($data); // digital sign $result = base64_encode($data); // base64_encode $process_button_string = osc_draw_hidden_field('invoiceNumber', $invoiceNumber) . osc_draw_hidden_field('invoiceDate', $invoiceDate) . osc_draw_hidden_field('amount', $amount) . osc_draw_hidden_field('terminalCode', MODULE_PAYMENT_BPI_TERMINAL_CODE) . osc_draw_hidden_field('merchantCode', MODULE_PAYMENT_BPI_MERCHANT_CODE) . osc_draw_hidden_field('redirectAddress', osc_href_link(FILENAME_CHECKOUT, 'process', 'SSL', null, null, true)) . osc_draw_hidden_field('timeStamp', $timeStamp) . osc_draw_hidden_field('action', $action) . osc_draw_hidden_field('sign', $result); return $process_button_string; }