function actionAlipay() { $order_number = $this->_context->order_number; $rs = Invoice::find('order_number =?', $order_number); $rs = $rs->getOne(); if ($rs->trade_status == 'WAIT_BUYER_PAY') { $total_fee = $rs->total_fee; $subject = $rs->order->name; $out_trade_no = $rs->order_number; $body = '订购' . Q::ini('appini/meta/title') . '提供的稳定加速服务'; if (Q::ini('isAdmin') || Q::ini('isDemo')) { $total_fee = 0.01; } $logistics_fee = "0.00"; //物流费用,即运费。 $logistics_type = "EXPRESS"; //物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) $logistics_payment = "SELLER_PAY"; //物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) $quantity = "1"; //商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。 $receive_name = $this->_user_name; $receive_address = Q::ini('appini/meta/url') . "/service"; $receive_zip = ""; $receive_phone = ""; $receive_mobile = $this->_user->user_mail; $show_url = Q::ini('appini/meta/url') . "/service"; $root_dir = Q::ini('app_config/ROOT_DIR'); require_once $root_dir . Q::ini('appini/alipay_dir') . "lib/alipay_service.class.php"; $parameter = array("service" => "trade_create_by_buyer", "payment_type" => "1", "partner" => trim(Q::ini('appini/payment/alipay/partner')), "_input_charset" => trim(strtolower(Q::ini('appini/payment/alipay/input_charset'))), "seller_email" => trim(Q::ini('appini/payment/alipay/seller_email')), "return_url" => trim(Q::ini('appini/payment/alipay/return_url')), "notify_url" => trim(Q::ini('appini/payment/alipay/notify_url')), "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "price" => $total_fee, "quantity" => $quantity, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "show_url" => $show_url); #dump($parameter);exit; $alipayService = new AlipayService(Q::ini('appini/payment/alipay')); $html_text = $alipayService->trade_create_by_buyer($parameter); return $html_text; } return '已过期'; }
/** * Process the payment and return the result **/ function process_payment($order_id) { global $woocommerce; require_once CI_WC_PATH . "/lib/alipay.config.php"; require_once CI_WC_PATH . "/lib/alipay_service.class.php"; $order = new WC_Order($order_id); if (sizeof($order->get_items()) > 0) { foreach ($order->get_items() as $item) { if ($item['qty']) { $item_names[] = $item['name'] . ' x ' . $item['qty']; } } } ////////////////////////////////////// /**************************请求参数**************************/ //必填参数// $out_trade_no = 'CIP' . $order_id; //请与贵网站订单系统中的唯一订单号匹配 $subject = implode(',', $item_names); //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。 $body = implode(',', $item_names); //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里 $price = number_format($order->get_order_total() - $order->get_total_discount(), 2, '.', ''); //订单总金额,显示在支付宝收银台里的“应付总额”里 $logistics_fee = "0.00"; //物流费用,即运费。 $logistics_type = "EXPRESS"; //物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) $logistics_payment = "SELLER_PAY"; //物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) $quantity = "1"; //商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。 $receive_name = ""; //收货人姓名,如:张三 $receive_address = ""; //收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 $receive_zip = ""; //收货人邮编,如:123456 $receive_phone = ""; //收货人电话号码,如:0571-81234567 $receive_mobile = ""; //收货人手机号码,如:13312341234 //网站商品的展示地址,不允许加?id=123这类自定义参数 $show_url = get_bloginfo('url'); /************************************************************/ //构造要请求的参数数组 $parameter = array("service" => "trade_create_by_buyer", "payment_type" => "1", "partner" => trim($aliapy_config['partner']), "_input_charset" => trim(strtolower($aliapy_config['input_charset'])), "seller_email" => trim($aliapy_config['seller_email']), "return_url" => trim($aliapy_config['return_url']), "notify_url" => trim($aliapy_config['notify_url']), "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "price" => $price, "quantity" => $quantity, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "show_url" => $show_url); //构造标准双接口 $alipayService = new AlipayService($aliapy_config); $html_text = $alipayService->trade_create_by_buyer($parameter); //param end $output = "\r\n\t\t\t<html>\r\n\t\t <head>\r\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n\t\t <title>正在前往支付宝...</title>\r\n\t\t </head>\r\n\t\t <body><div style='display:none'>{$html_text}</div>'</body></html>"; echo $output; exit; return array('result' => 'success', 'redirect' => $output); }
$receive_address = $td['buyer_address']; //收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 $receive_zip = $td['buyer_postcode']; //收货人邮编,如:123456 $receive_phone = $td['buyer_phone']; //收货人电话号码,如:0571-81234567 $receive_mobile = $td['buyer_phone']; //收货人手机号码,如:13312341234 //网站商品的展示地址,不允许加?id=123这类自定义参数 $show_url = DT_PATH . 'api/trade/alipay/show.php'; /************************************************************/ //构造要请求的参数数组 $parameter = array("service" => "trade_create_by_buyer", "payment_type" => "1", "partner" => trim($aliapy_config['partner']), "_input_charset" => trim(strtolower($aliapy_config['input_charset'])), "seller_email" => trim($aliapy_config['seller_email']), "return_url" => trim($aliapy_config['return_url']), "notify_url" => trim($aliapy_config['notify_url']), "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "price" => $price, "quantity" => $quantity, "buyer_email" => $_trade, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "show_url" => $show_url); //构造标准双接口 $alipayService = new AlipayService($aliapy_config); $html_text = $alipayService->trade_create_by_buyer($parameter); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=<?php echo DT_CHARSET; ?> "> <meta http-equiv="cache-control" content="no-cache"> <title>Loading...</title> </head> <body onload="document.getElementById('alipaysubmit').submit();"> <?php echo $html_text; ?> </body>