shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

alipay.php (3300B)


      1 <?php
      2 class ControllerExtensionPaymentAlipay extends Controller {
      3 	public function index() {
      4 		$data['button_confirm'] = $this->language->get('button_confirm');
      5 
      6 		$this->load->model('checkout/order');
      7 
      8 		$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
      9 
     10 		$config = array (
     11 			'app_id'               => $this->config->get('payment_alipay_app_id'),
     12 			'merchant_private_key' => $this->config->get('payment_alipay_merchant_private_key'),
     13 			'notify_url'           => HTTPS_SERVER . "payment_callback/alipay",
     14 			'return_url'           => $this->url->link('checkout/success'),
     15 			'charset'              => "UTF-8",
     16 			'sign_type'            => "RSA2",
     17 			'gateway_url'          => $this->config->get('payment_alipay_test') == "sandbox" ? "https://openapi.alipaydev.com/gateway.do" : "https://openapi.alipay.com/gateway.do",
     18 			'alipay_public_key'    => $this->config->get('payment_alipay_alipay_public_key'),
     19 		);
     20 		$out_trade_no = trim($order_info['order_id']);
     21 		$subject = trim($this->config->get('config_name'));
     22 		$total_amount = trim($this->currency->format($order_info['total'], 'CNY', '', false));
     23 		$body = '';//trim($_POST['WIDbody']);
     24 
     25 		$payRequestBuilder = array(
     26 			'body'         => $body,
     27 			'subject'      => $subject,
     28 			'total_amount' => $total_amount,
     29 			'out_trade_no' => $out_trade_no,
     30 			'product_code' => 'FAST_INSTANT_TRADE_PAY'
     31 		);
     32 
     33 		$this->load->model('extension/payment/alipay');
     34 
     35 		$response = $this->model_extension_payment_alipay->pagePay($payRequestBuilder,$config);
     36 		$data['action'] = $config['gateway_url'] . "?charset=" . $this->model_extension_payment_alipay->getPostCharset();
     37 		$data['form_params'] = $response;
     38 
     39 		return $this->load->view('extension/payment/alipay', $data);
     40 	}
     41 
     42 	public function callback() {
     43 		$this->log->write('alipay pay notify:');
     44 		$arr = $_POST;
     45 		$config = array (
     46 			'app_id'               => $this->config->get('payment_alipay_app_id'),
     47 			'merchant_private_key' => $this->config->get('payment_alipay_merchant_private_key'),
     48 			'notify_url'           => HTTPS_SERVER . "payment_callback/alipay",
     49 			'return_url'           => $this->url->link('checkout/success'),
     50 			'charset'              => "UTF-8",
     51 			'sign_type'            => "RSA2",
     52 			'gateway_url'          => $this->config->get('payment_alipay_test') == "sandbox" ? "https://openapi.alipaydev.com/gateway.do" : "https://openapi.alipay.com/gateway.do",
     53 			'alipay_public_key'    => $this->config->get('payment_alipay_alipay_public_key'),
     54 		);
     55 		$this->load->model('extension/payment/alipay');
     56 		$this->log->write('POST' . var_export($_POST,true));
     57 		$result = $this->model_extension_payment_alipay->check($arr, $config);
     58 
     59 		if($result) {//check successed
     60 			$this->log->write('Alipay check successed');
     61 			$order_id = $_POST['out_trade_no'];
     62 			if($_POST['trade_status'] == 'TRADE_FINISHED') {
     63 			}
     64 			else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
     65 				$this->load->model('checkout/order');
     66 				$this->model_checkout_order->addOrderHistory($order_id, $this->config->get('payment_alipay_order_status_id'));
     67 			}
     68 			echo "success";	//Do not modified or deleted
     69 		}else {
     70 			$this->log->write('Alipay check failed');
     71 			//chedk failed
     72 			echo "fail";
     73 
     74 		}
     75 	}
     76 }