public function alipayPost() { /**************************请求参数**************************/ //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 $get_notify_url = addons_url("AliPlay://AliPlayEscow/notifyUrl"); $get_notify_url = preg_replace('/.html/i', '', $get_notify_url); $get_notify_url = "http://" . $_SERVER['HTTP_HOST'] . $get_notify_url; $notify_url = $get_notify_url; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $get_return_url = addons_url("AliPlay://AliPlayEscow/returnUrl"); $get_return_url = preg_replace('/.html/i', '', $get_notify_url); $get_return_url = "http://" . $_SERVER['HTTP_HOST'] . $get_notify_url; $return_url = $get_return_url; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //商户订单号 $out_trade_no = $_POST['out_trade_no']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $_POST['subject']; //必填 //付款金额 $price = $_POST['price']; //必填 //商品数量 $quantity = "1"; //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品 //物流费用 $logistics_fee = "0.00"; //必填,即运费 //物流类型 $logistics_type = "EXPRESS"; //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) //物流支付方式 $logistics_payment = "SELLER_PAY"; //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) //订单描述 $body = $_POST['body']; //商品展示地址 $show_url = $_POST['show_url']; //需以http://开头的完整路径,如:http://www.商户网站.com/myorder.html //收货人姓名 $receive_name = $_POST['receive_name']; //如:张三 //收货人地址 $receive_address = $_POST['receive_address']; //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 //收货人邮编 $receive_zip = $_POST['receive_zip']; //如:123456 //收货人电话号码 $receive_phone = $_POST['receive_phone']; //如:0571-88158090 //收货人手机号码 $receive_mobile = $_POST['receive_mobile']; //如:13312341234 //这里根据自己的逻辑处理 /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "create_partner_trade_by_buyer", "partner" => trim($alipay_config['partner']), "seller_email" => trim($alipay_config['seller_email']), "payment_type" => $payment_type, "notify_url" => $notify_url, "return_url" => $return_url, "out_trade_no" => $out_trade_no, "subject" => $subject, "price" => $price, "quantity" => $quantity, "logistics_fee" => $logistics_fee, "logistics_type" => $logistics_type, "logistics_payment" => $logistics_payment, "body" => $body, "show_url" => $show_url, "receive_name" => $receive_name, "receive_address" => $receive_address, "receive_zip" => $receive_zip, "receive_phone" => $receive_phone, "receive_mobile" => $receive_mobile, "_input_charset" => trim(strtolower($alipay_config['input_charset']))); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "确认"); header("Content-type:text/html;charset=utf-8"); echo $html_text; }
/** * [alipayPost 提交到支付宝方法] * @return [type] [description] */ public function alipayGet() { $order_id = I('order_id'); if (empty($order_id)) { $this->error('非法订单参数...'); } $map = array('order_status' => 4, 'order_id' => $order_id); $order_info = M('Order')->field('order_id,order_price,product_id,order_type')->where($map)->find(); if (empty($order_info)) { $this->error('订单不存在...'); } switch ($order_info['order_type']) { case 'line': $info = M('Line')->field('title,sub_title')->find($order_info['product_id']); if ($info) { $order_info['title'] = $info['title']; $order_info['sub_title'] = $info['sub_title']; } else { $order_info['title'] = '旅游线路'; $order_info['sub_title'] = '旅游线路资费'; } break; case 'visa': $info = M('Visa')->field('title,sub_title')->find($order_info['product_id']); if ($info) { $order_info['title'] = $info['title']; $order_info['sub_title'] = $info['sub_title']; } else { $order_info['title'] = '旅游线路'; $order_info['sub_title'] = '旅游线路资费'; } break; default: break; } /**************************请求参数**************************/ //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 $get_notify_url = addons_url("AliPlay://AliPlayDirect/notifyUrl"); $get_notify_url = preg_replace('/.html/i', '', $get_notify_url); $get_notify_url = "http://" . $_SERVER['HTTP_HOST'] . $get_notify_url; $notify_url = $get_notify_url; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $get_return_url = addons_url("AliPlay://AliPlayDirect/returnUrl"); $get_return_url = preg_replace('/.html/i', '', $get_return_url); $get_return_url = "http://" . $_SERVER['HTTP_HOST'] . $get_return_url; $return_url = $get_return_url; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //卖家支付宝帐户 $seller_email = SELLER_EMAIL; //必填 //商户订单号 $out_trade_no = $order_info['order_id']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = $order_info['title']; //必填 //付款金额 $total_fee = $order_info['order_price']; //必填 //订单描述 $body = $order_info['title']; //商品展示地址 $show_url = ''; //需以http://开头的完整路径,例如:http://www.xxx.com/myorder.html //防钓鱼时间戳 $anti_phishing_key = ""; //若要使用请调用类文件submit中的query_timestamp函数 //客户端的IP地址 $exter_invoke_ip = $_SERVER["REMOTE_ADDR"]; //非局域网的外网IP地址,如:221.0.0.1 //这里根据自己的逻辑处理 /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array("service" => "create_direct_pay_by_user", "partner" => trim($this->alipay_config['partner']), "payment_type" => $payment_type, "notify_url" => $notify_url, "return_url" => $return_url, "seller_email" => $seller_email, "out_trade_no" => $out_trade_no, "subject" => $subject, "total_fee" => $total_fee, "body" => $body, "show_url" => $show_url, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))); // echo '<pre>'; print_r($parameter); echo '</pre>'; exit; //建立请求 $alipaySubmit = new AlipaySubmit($this->alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, "get", "支付宝"); header("Content-type:text/html;charset=utf-8"); echo $html_text; }