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 }