function pay_team_alipay($total_money, $order) { global $INI; if($total_money<=0||!$order) return null; $team = Table::Fetch('team', $order['team_id']); $order_id = $order['id']; $pay_id = $order['pay_id']; $guarantee = strtoupper($INI['alipay']['guarantee'])=='Y'; /* param */ $_input_charset = 'utf-8'; $service = $guarantee ? 'create_partner_trade_by_buyer' : 'create_direct_pay_by_user'; if(strtoupper($INI['alipay']['guarantee'])=='S') $service = 'trade_create_by_buyer'; $partner = $INI['alipay']['mid']; $security_code = $INI['alipay']['sec']; $seller_email = $INI['alipay']['acc']; $itbpay = strval($INI['alipay']['itbpay']); $sign_type = 'MD5'; $out_trade_no = $pay_id; $return_url = $INI['system']['wwwprefix'] . '/order/alipay/return.php'; $notify_url = $INI['system']['wwwprefix'] . '/order/alipay/notify.php'; $show_url = $INI['system']['wwwprefix'] . "/team.php?id={$team['id']}"; $show_url = obscure_rep($show_url); $subject = mb_substr(strip_tags($team['title']),0,128,'UTF-8'); $body = $show_url; $quantity = $order['quantity']; //print_r($service);exit; $parameter = array( "service" => $service, "partner" => $partner, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "subject" => $subject, "body" => $body, "out_trade_no" => $out_trade_no, "payment_type" => "1", "show_url" => $show_url, "seller_email" => $seller_email, "extend_param" => "isv^zt11", ); if ($guarantee || $service == 'trade_create_by_buyer') { $parameter['price'] = $total_money; $parameter['quantity'] = 1; $parameter['logistics_fee'] = '0.00'; $parameter['logistics_type'] = 'EXPRESS'; $parameter['logistics_payment'] = 'SELLER_PAY'; } else { $parameter["total_fee"] = $total_money; } //print_r($parameter);exit; if(!empty($_SESSION['ali_token'])) $parameter['token'] = $_SESSION['ali_token']; if ($itbpay) $parameter['it_b_pay'] = $itbpay; $alipay = new AlipayService($parameter, $security_code, $sign_type); $sign = $alipay->Get_Sign(); $reqUrl = $alipay->create_url(); return render('block_pay_alipay', array( 'order_id' => $order_id, 'reqUrl' => $reqUrl, )); }
function pay_charge_alipay($total_money, $charge_id, $title) { global $INI; if ($total_money <= 0 || !$title) { return null; } $order_id = 'charge'; /* param */ $_input_charset = 'utf-8'; $service = 'create_direct_pay_by_user'; $partner = $INI['alipay']['mid']; $security_code = $INI['alipay']['sec']; $seller_email = $INI['alipay']['acc']; $itbpay = strval($INI['alipay']['itbpay']); $sign_type = 'MD5'; $out_trade_no = $charge_id; $return_url = $INI['system']['wwwprefix'] . '/order/alipay/return.php'; $notify_url = $INI['system']['wwwprefix'] . '/order/alipay/notify.php'; $show_url = $INI['system']['wwwprefix'] . "/credit/index.php"; $subject = $title; $body = $show_url; $quantity = 1; $parameter = array("service" => $service, "partner" => $partner, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "subject" => $subject, "body" => $body, "out_trade_no" => $out_trade_no, "total_fee" => $total_money, "payment_type" => "1", "show_url" => $show_url, "seller_email" => $seller_email, "extend_param" => "isv^zt11"); if (!empty($_SESSION['ali_token'])) { $parameter['token'] = $_SESSION['ali_token']; } if ($itbpay) { $parameter['it_b_pay'] = $itbpay; } $alipay = new AlipayService($parameter, $security_code, $sign_type); $sign = $alipay->Get_Sign(); $reqUrl = $alipay->create_url(); return render('block_pay_alipay', array('order_id' => $order_id, 'reqUrl' => $reqUrl)); }
$partner = $INI['alipay']['mid']; $security_code = $INI['alipay']['sec']; $seller_email = $INI['alipay']['acc']; //禁止支付宝账号为空 if (!$partner || !$security_code || !$seller_email) { die('fail'); } //参数设置 $_input_charset = "utf-8"; //设置编码方式 $sign_type = "MD5"; $transport = 'http'; $parameter = array("service" => "single_trade_query", "partner" => $partner, "_input_charset" => $_input_charset, "out_trade_no" => "{$no}"); //支付宝类初始化参数、建立单条查询链接参数 $alipay = new AlipayService($parameter, $security_code, $sign_type, $transport); $xml_file = $alipay->create_url(); //XML 文件解析 $xml_parser = xml_parser_create(); //建立XML解析对象 xml_set_element_handler($xml_parser, 'startElement', 'endElement'); xml_set_character_data_handler($xml_parser, 'parseData'); if (!($fp = fopen($xml_file, 'r'))) { die('could not open xml file .'); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { var_dump($data); die(sprintf('XML error : %s at line $d ', xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser);