buildRequestHttp() public method

建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果
public buildRequestHttp ( $para_temp ) : 支付宝处理结果
$para_temp 请求参数数组
return 支付宝处理结果
示例#1
0
    public function submit()
    {
        //请求业务参数详细
        $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $this->out_trade_no . '</out_trade_no><subject>' . $this->subject . '</subject><total_fee>' . $this->total_fee . '</total_fee></direct_trade_create_req>';
        //必填
        //构造要请求的参数数组,无需改动
        $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
        //建立请求
        $alipaySubmit = new AlipaySubmit($this->alipay_config);
        $html_text = $alipaySubmit->buildRequestHttp($para_token);
        //URLDECODE返回的信息
        $html_text = urldecode($html_text);
        //解析远程模拟提交后返回的信息
        $para_html_text = $alipaySubmit->parseResponse($html_text);
        //获取request_token
        $request_token = $para_html_text['request_token'];
        /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
        //业务详细
        $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
        //必填
        //构造要请求的参数数组,无需改动
        $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
        //建立请求
        $alipaySubmit = new AlipaySubmit($this->alipay_config);
        $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正在跳转支付页面...');
        return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
				<html>
				<head>
					<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
					<title>支付宝即时到账交易接口接口</title>
				</head>' . $html_text . '
				</body>
				</html>';
    }
 /**
  * @brief 开始向接口发送数据
  * @param $data array 订单和配送数据
  */
 public function send($data)
 {
     require_once dirname(__FILE__) . "/lib/alipay_submit.class.php";
     /* if(isset($data['seller_id']) && $data['seller_id'] > 0 ){
     			//获取商户的支付配置信息
     			$sellPay = new IModel("seller_payment");
     			$sellers = $sellPay->getObj("seller_id = ".$data['seller_id']);
     			if(empty($sellers)){
     				return false;
     			}
     		} */
     $alipay_config = array('partner' => Payment::getConfigParam($data['pay_type'], 'M_PartnerId'), 'key' => Payment::getConfigParam($data['pay_type'], 'M_PartnerKey'), 'sign_type' => strtoupper('MD5'), 'input_charset' => strtolower('utf-8'), 'cacert' => getcwd() . '/cacert.pem', 'transport' => 'http');
     //支付宝交易号
     $trade_no = $data['trade_no'];
     //必填
     //物流公司名称
     $logistics_name = $data['freight_type'];
     //必填
     //物流发货单号
     $invoice_no = $data['delivery_code'];
     //物流运输类型 三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
     $transport_type = 'EXPRESS';
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower('utf-8')));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
 }
示例#3
0
文件: Alipay.php 项目: linuxwit/mf
 public function buildForm($request)
 {
     //构造要请求的参数数组,无需改动
     $req_id = date('Ymdhis');
     $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $request->out_trade_no . '</out_trade_no><subject>' . $request->subject . '</subject><total_fee>' . $request->total_fee . '</total_fee><merchant_url>' . $this->merchant_url . '</merchant_url></direct_trade_create_req>';
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->partner), "key" => $this->key, 'sec_id' => $this->sign_type, "format" => $this->format, "v" => $this->v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->_input_charset)));
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->partner), 'sec_id' => $this->sign_type, "format" => $this->format, "v" => $this->v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->_input_charset)));
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     return $alipaySubmit->buildRequestForm($parameter, "get", "确认");
 }
示例#4
0
 public function send($trade_no, $logistics_name, $invoice_no)
 {
     require_once "lib/alipay_submit.class.php";
     $alipaySubmit = new AlipaySubmit($this->config);
     $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($this->config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => 'EXPRESS', "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
 }
示例#5
0
 public function config($config = null)
 {
     $format = "xml";
     $req_id = date('Ymdhis');
     $merchant_url = "";
     $notify_url = $config['NotifyUrl'];
     $return_url = $config['ReturnUrl'];
     $seller_email = $config['pay_type_data']['user']['val'];
     $out_trade_no = $config['code'];
     $subject = $config['title'];
     $total_fee = $config['money'];
     $wapalipay_config_id = trim($config['id']);
     $wapalipay_config_key = trim($config['key']);
     $wapalipay_config_input_charset = strtolower('utf-8');
     $wapalipay_config_sign_type = strtoupper('MD5');
     $wapalipay_config_input_charset = strtolower('utf-8');
     $wapalipay_config_cacert = dirname(__FILE__) . DIRECTORY_SEPARATOR . "wapalipay" . DIRECTORY_SEPARATOR . "cacert.pem";
     $wapalipay_config_private_key_path = '.' . DIRECTORY_SEPARATOR . 'wapalipay' . DIRECTORY_SEPARATOR . 'rsa_private_key.pem';
     $wapalipay_config_ali_public_key_path = '.' . DIRECTORY_SEPARATOR . 'wapalipay' . DIRECTORY_SEPARATOR . 'alipay_public_key.pem';
     $wapalipay_config_transport = 'http';
     $wapalipay_config = array("partner" => $wapalipay_config_id, "key" => $wapalipay_config_key, "private_key_path" => $wapalipay_config_private_key_path, "ali_public_key_path" => $wapalipay_config_ali_public_key_path, "sign_type" => $wapalipay_config_sign_type, "input_charset" => $wapalipay_config_input_charset, "cacert" => $wapalipay_config_cacert, "transport" => $wapalipay_config_transport);
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $return_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($config['id']), "sec_id" => $wapalipay_config_sign_type, "format" => $format, "v" => "2.0", "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => $wapalipay_config_input_charset);
     $wapalipaySubmit = new AlipaySubmit($wapalipay_config);
     $html_text = $wapalipaySubmit->buildRequestHttp($para_token);
     $html_text = urldecode($html_text);
     $para_html_text = $wapalipaySubmit->parseResponse($html_text);
     $request_token = $para_html_text['request_token'];
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($config['id']), "sec_id" => $wapalipay_config_sign_type, "format" => $format, "v" => "2.0", "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => $wapalipay_config_input_charset);
     $wapalipaySubmit = new AlipaySubmit($wapalipay_config);
     $this->url = $wapalipaySubmit->buildRequestForm($parameter, 'get', '确认');
 }
示例#6
0
	public function pay()
	{
		$orderName = htmlentities($_GET['orderName']);
		$orderid = htmlentities($_GET['orderid']);
		$from = htmlentities($_GET['from']);

		if (!$orderName) {
			$orderName = microtime();
		}

		if (!$orderid) {
			$orderid = htmlentities($_GET['single_orderid']);
		}

		$payHandel = new payHandle($this->token, $from, 'alipay');
		$orderInfo = $payHandel->beforePay($orderid);
		$price = $orderInfo['price'];

		if ($orderInfo['paid']) {
			exit('您已经支付过此次订单!');
		}

		if (!$price) {
			exit('必须有价格才能支付');
		}

		require_once $this->base_path . 'lib/alipay_submit.class.php';
		$format = 'xml';
		$v = '2.0';
		$req_id = date('Ymdhis');
		if (($_GET['platform'] || $_GET['pl']) && C('platform_open') && C('platform_alipay_open')) {
			$query_string_base = 'token=' . $this->token . '|wecha_id=' . $this->wecha_id . '|from=' . $from . '|pl=1';
			$query_string_base_notify = 'token||' . $this->token . '|wecha_id||' . $this->wecha_id . '|from||' . $from . '|pl||1';
		}
		else {
			$query_string_base = 'token=' . $this->token . '|wecha_id=' . $this->wecha_id . '|from=' . $from;
			$query_string_base_notify = 'token||' . $this->token . '|wecha_id||' . $this->wecha_id . '|from||' . $from;
		}

		$notify_url = C('site_url') . '/wxpay/alipaytype_notify_url.php?user_params=' . $query_string_base_notify;
		$call_back_url = C('site_url') . '/wxpay/alipaytype_call_back_url.php?user_params=' . $query_string_base;
		$merchant_url = C('site_url') . '/wxpay/alipaytype_break.php';
		$out_trade_no = $orderid;
		$subject = $orderName;
		$total_fee = $price;
		$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($this->alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
		$para_token = array('service' => 'alipay.wap.trade.create.direct', 'partner' => trim($this->alipay_config['partner']), 'sec_id' => trim($this->alipay_config['sign_type']), 'format' => $format, 'v' => $v, 'req_id' => $req_id, 'req_data' => $req_data, '_input_charset' => trim(strtolower($this->alipay_config['input_charset'])));
		$alipaySubmit = new AlipaySubmit($this->alipay_config);
		$html_text = $alipaySubmit->buildRequestHttp($para_token);
		$html_text = urldecode($html_text);
		$para_html_text = $alipaySubmit->parseResponse($html_text);
		$request_token = $para_html_text['request_token'];
		$req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
		$parameter = array('service' => 'alipay.wap.auth.authAndExecute', 'partner' => trim($this->alipay_config['partner']), 'sec_id' => trim($this->alipay_config['sign_type']), 'format' => $format, 'v' => $v, 'req_id' => $req_id, 'req_data' => $req_data, '_input_charset' => trim(strtolower($this->alipay_config['input_charset'])));
		$alipaySubmit = new AlipaySubmit($this->alipay_config);
		$html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
		header('Content-type: text/html; charset=utf-8');
		echo $html_text;
	}
示例#7
0
 public function send($post)
 {
     require_once "lib/alipay_submit.class.php";
     $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($this->alipay_config['partner']), "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])), "trade_no" => $post['trade_no'], "logistics_name" => "无需物流", "invoice_no" => "", "transport_type" => "DIRECT", "create_transport_type" => "DIRECT", "seller_ip" => "");
     $this->alipay_config['cacert'] = $this->cacert;
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     return $html_text;
 }
示例#8
0
文件: AlipayProxy.php 项目: zwq/unpei
 public function buildRequestHttp($request)
 {
     $rs = $request->getParams();
     $parameter = array('partner' => $this->partner, '_input_charset' => $this->input_charset);
     $parameter = array_merge($parameter, $rs);
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     return $html_text;
 }
 /**
  * 生成支付代码
  * @param   array   $order  订单信息
  * @param   array   $payment    支付方式信息
  */
 function get_wappay_url($order, $payment)
 {
     $order_id = $order['order_id'];
     $order_desc = $order['order_sn'];
     $order_sn = $order['order_sn'];
     $amount = $order['order_amount'];
     $ecmobile_url = ecmobile_url();
     //修正配置文件路径
     $this->alipay_config = $this->modify_config_path($this->alipay_config);
     $format = "xml";
     //返回格式
     $v = "2.0";
     $req_id = date('Ymdhis');
     //请求号
     $notify_url = $ecmobile_url . "/payment/alipay/wap/notify_url.php";
     //服务器异步通知页面路径
     $call_back_url = $ecmobile_url . "/payment/wap_callback.php?code=alipay";
     //页面跳转同步通知页面路径
     $merchant_url = $ecmobile_url . "/payment/wap_merchant.php?code=alipay";
     //操作中断返回地址
     $seller_email = '*****@*****.**';
     //卖家支付宝帐户
     $out_trade_no = $order_sn;
     //商户订单号
     $subject = $order_desc;
     //订单名称
     $total_fee = $amount;
     //付款金额
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     if ($request_token) {
         //业务详细
         $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
         //构造要请求的参数数组,无需改动
         $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
         //建立请求
         $alipaySubmit = new AlipaySubmit($this->alipay_config);
         $url = $alipaySubmit->alipay_gateway_new . $alipaySubmit->buildRequestParaToString($parameter);
         return $url;
     } else {
         return false;
     }
 }
示例#10
0
    public function submit($param)
    {
        $this->format = 'xml';
        $this->v = '2.0';
        $this->req_id = date('Ymdhis');
        $this->notify_url = MOBILE_SITE_URL . '/api/payment/alipay/notify_url.php';
        $this->call_back_url = MOBILE_SITE_URL . '/api/payment/alipay/call_back_url.php';
        $this->seller_email = $param['alipay_account'];
        //v3-b11
        $this->out_trade_no = $param['order_sn'] . '-' . $param['order_type'];
        $this->subject = $param['order_sn'];
        $this->total_fee = $param['order_amount'];
        $this->alipay_config = array('partner' => $param['alipay_partner'], 'key' => $param['alipay_key'], 'private_key_path' => 'key/rsa_private_key.pem', 'ali_public_key_path' => 'key/alipay_public_key.pem', 'sign_type' => 'MD5', 'input_charset' => 'utf-8', 'cacert' => getcwd() . '\\cacert.pem', 'transport' => 'http');
        //请求业务参数详细
        $req_data = '<direct_trade_create_req><notify_url>' . $this->notify_url . '</notify_url><call_back_url>' . $this->call_back_url . '</call_back_url><seller_account_name>' . $this->seller_email . '</seller_account_name><out_trade_no>' . $this->out_trade_no . '</out_trade_no><subject>' . $this->subject . '</subject><total_fee>' . $this->total_fee . '</total_fee></direct_trade_create_req>';
        //必填
        //构造要请求的参数数组,无需改动
        $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
        //建立请求
        $alipaySubmit = new AlipaySubmit($this->alipay_config);
        $html_text = $alipaySubmit->buildRequestHttp($para_token);
        //URLDECODE返回的信息
        $html_text = urldecode($html_text);
        //解析远程模拟提交后返回的信息
        $para_html_text = $alipaySubmit->parseResponse($html_text);
        //获取request_token
        $request_token = $para_html_text['request_token'];
        /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
        //业务详细
        $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
        //必填
        //构造要请求的参数数组,无需改动
        $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $this->format, "v" => $this->v, "req_id" => $this->req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
        //建立请求
        $alipaySubmit = new AlipaySubmit($this->alipay_config);
        $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正在跳转支付页面...');
        return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
				<html>
				<head>
					<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
					<title>支付宝即时到账交易接口接口</title>
				</head>' . $html_text . '
				</body>
				</html>';
    }
示例#11
0
 /**
  * @brief 开始向接口发送数据
  * @param $data array 订单和配送数据
  */
 public function send($data)
 {
     require_once dirname(__FILE__) . "/lib/alipay_submit.class.php";
     $alipay_config = array('partner' => $data['partner_id'], 'key' => $data['partner_key'], 'sign_type' => strtoupper('MD5'), 'input_charset' => strtolower('utf-8'), 'cacert' => getcwd() . '/cacert.pem', 'transport' => 'http');
     //支付宝交易号
     $trade_no = $data['trade_no'];
     //必填
     //物流公司名称
     $logistics_name = $data['freight_type'];
     //必填
     //物流发货单号
     $invoice_no = $data['delivery_code'];
     //物流运输类型 三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
     $transport_type = 'EXPRESS';
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower('utf-8')));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
 }
 public function startAlipay()
 {
     $order_sn = $this->_get('order_sn');
     $token = $this->_get('token');
     Log::record($token . ':' . $order_sn);
     if (empty($order_sn) || empty($token)) {
         Log::record('startAlipay: ' . print_r($_GET, true));
         Log::save();
         $this->error('请输入订单号');
     }
     $order = M('b2c_order')->where(array('sn' => $order_sn, 'token' => $token, 'status' => 1))->find();
     if (!$order) {
         $this->error('订单号不正确');
     }
     $shop = M('b2c_shop')->where(array('token' => $token))->find();
     if (!$shop) {
         $this->error('商城不存在');
     }
     $alipay = M('b2c_payment')->where(array('token' => $token, 'pay_code' => 'alipay'))->find();
     $alipay_config = array();
     if (is_string($alipay['pay_config'])) {
         $store = unserialize($alipay['pay_config']);
         $alipay_config['pay_account'] = $store['pay_account'];
         //合作身份者id,以2088开头的16位纯数字
         $alipay_config['partner'] = $store['alipay_pid'];
         //安全检验码,以数字和字母组成的32位字符
         //如果签名方式设置为“MD5”时,请设置该参数
         $alipay_config['key'] = $store['alipay_key'];
         //商户的私钥(后缀是.pen)文件相对路径
         //如果签名方式设置为“0001”时,请设置该参数
         //$alipay_config['private_key_path']  = getcwd()."/Conf/Wap/key/".$shop['token']."_rsa_private_key.pem";
         //支付宝公钥(后缀是.pen)文件相对路径
         //如果签名方式设置为“0001”时,请设置该参数
         //$alipay_config['ali_public_key_path']= getcwd().'/Conf/Wap/key/'.$shop['token'].'_alipay_public_key.pem';
         //签名方式 不需修改
         $alipay_config['sign_type'] = 'MD5';
         //'0001';
         //字符编码格式 目前支持 gbk 或 utf-8
         $alipay_config['input_charset'] = 'utf-8';
         //ca证书路径地址,用于curl中ssl校验
         //请保证cacert.pem文件在当前文件夹目录中
         $alipay_config['cacert'] = getcwd() . '\\Conf\\Wap\\key\\cacert.pem';
         //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
         $alipay_config['transport'] = 'http';
     }
     Log::record('alipay_config Args:' . print_r($alipay_config, true), Log::INFO);
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = C('site_url') . '/index.php/alipay/notify';
     //需http://格式的完整路径,不能加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = C('site_url') . '/index.php/alipay/return_url';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //操作中断返回地址
     $merchant_url = "http://" . $shop['token'] . ".shop.weixinwz.com/";
     //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
     //卖家支付宝帐户
     $seller_email = trim($alipay_config['pay_account']);
     //必填
     //商户订单号
     $out_trade_no = $order['sn'];
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     $subject = '订单' . $order['sn'] . '支付';
     //必填
     //付款金额
     $total_fee = $order['price'];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     Log::record('para_token Args:' . print_r($para_token, true), Log::INFO);
     $trade = M('b2c_trade')->where(array('order_sn' => $order_sn, 'token' => $shop['token']))->find();
     if ($trade == null) {
         $time = time();
         $data = array('subject' => $subject, 'name' => $order['truename'], 'order_sn' => $out_trade_no, 'price' => $total_fee);
         $data['create_time'] = $time;
         $data['update_time'] = $time;
         $data['token'] = $shop['token'];
         $ret = M('b2c_trade')->data($data)->add();
     } else {
         if ($trade['trade_no']) {
             $this->error('已支付');
         }
     }
     import("@.ORG.AliWapPay.AlipaySubmit");
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     Log::record('token:' . print_r($para_html_text, true), Log::INFO);
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     Log::record('AliWapPay Args:' . print_r($parameter, true), Log::INFO);
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', 'Start to pay');
     echo $html_text;
 }
示例#13
0
    //支付宝交易号
    $trade_no = $_POST['WIDtrade_no'];
    //必填
    //物流公司名称
    $logistics_name = $_POST['WIDlogistics_name'];
    //必填
    //物流发货单号
    $invoice_no = $_POST['WIDinvoice_no'];
    //物流运输类型
    $transport_type = $_POST['WIDtransport_type'];
    //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
    /************************************************************/
    //构造要请求的参数数组,无需改动
    $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($instance->config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($instance->config['input_charset'])));
});
//建立请求
$alipaySubmit = new AlipaySubmit($pay->config);
$html_text = $alipaySubmit->buildRequestHttp($pay->param);
//解析XML
//注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
$doc = new DOMDocument();
$doc->loadXML($html_text);
//请在这里加上商户的业务逻辑程序代码
//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
//解析XML
if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
    $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue;
    echo $alipay;
}
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
示例#14
0
//必填
//付款金额
$pay_price = $pay['total_fee'];
//商户订单号
$out_trade_no = $pay['out_trade_no'];
$total_fee = $pay['total_fee'];
//必填
//请求业务参数详细
$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>';
//必填
/************************************************************/
//构造要请求的参数数组,无需改动
$para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestHttp($para_token);
//URLDECODE返回的信息
$html_text = urldecode($html_text);
//解析远程模拟提交后返回的信息
$para_html_text = $alipaySubmit->parseResponse($html_text);
//获取request_token
$request_token = $para_html_text['request_token'];
/**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
//业务详细
$req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
//必填
//构造要请求的参数数组,无需改动
$parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
//print_r($parameter); exit;
//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
示例#15
0
 public function orderWapPay($orderGlideId)
 {
     $orderPayGlideService = utils::getService('orderPayGlide');
     $orderGlideInfo = $orderPayGlideService->find($orderGlideId);
     $alipay_config = utils::c('aliwappay');
     $format = "xml";
     $v = "2.0";
     $req_id = date('Ymdhis');
     $notify_url = utils::c('siteUrl') . '/mobile/order/ali-pay-notify';
     $call_back_url = utils::c('siteUrl') . '/mobile/order/ali-pay-back';
     $merchant_url = utils::c('siteUrl') . '/mobile/order';
     $out_trade_no = $orderGlideInfo['glide_nums'];
     $subject = '宅配订单' . $orderGlideInfo['glide_nums'];
     $total_fee = $orderGlideInfo['total'];
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     $html_text = urldecode($html_text);
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     $request_token = $para_html_text['request_token'];
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $htmlText = $alipaySubmit->buildRequestForm($parameter, 'get', '支付宝支付');
     return $htmlText;
 }
示例#16
0
 function pay_order()
 {
     $order_sn = $this->uri->segment(3);
     require_once "walipay/alipay.config.php";
     require_once "walipay/lib/alipay_submit.class.php";
     $alipay_config_temp = $this->tickets->select('payment', array('name' => 'alipay'));
     $alipay_con = $alipay_config_temp[0];
     /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //操作中断返回地址
     $merchant_url = base_url() . "mobile_return_url.php";
     //用户付款中途退出返回商户的地址。需http://格
     $notify_url = base_url() . "wechat/notify_url";
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = base_url() . "return_url.php";
     //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
     $o = $this->tickets->select('orders', array('to_order_sn' => $order_sn));
     //卖家支付宝帐户
     $seller_email = $alipay_con->payname;
     //'*****@*****.**';
     //必填
     //商户订单号
     $out_trade_no = $order_sn;
     //商户网站订单系统中唯一订单号,必填
     $req_id = date('Ymdhis');
     $this->tickets->update('orders', array('to_alipay_sn' => $req_id), array('to_order_sn' => $order_sn));
     //订单名称
     $subject = $o[0]->to_receiver . '新订单';
     //付款金额
     $total_fee = $o[0]->to_order_amount;
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //必填
     /************************************************************/
     $alipay_config['partner'] = $alipay_con->app_id;
     $alipay_config['key'] = $alipay_con->app_secret;
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
     $data['text'] = $html_text;
     $this->load->view('main/pay_channel', $data);
 }
示例#17
0
 public function aliPay(Request $request)
 {
     require_once app_path() . "/Tool/Alipay/alipay.config.php";
     require_once app_path() . "/Tool/Alipay/lib/alipay_submit.class.php";
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_notify';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_result';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php
     //操作中断返回地址
     $merchant_url = "http://" . $_SERVER['HTTP_HOST'] . '/service/pay/ali_merchant';
     //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
     //卖家支付宝帐户
     $seller_email = '*****@*****.**';
     //必填
     //商户订单号
     $out_trade_no = $_POST['order_no'];
     //商户网站订单系统中唯一订单号,必填
     Log::info('out_trade_no:' . $out_trade_no);
     //订单名称
     $subject = $_POST['name'];
     //必填
     //付款金额
     $total_fee = $_POST['total_price'];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //必填
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new \AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new \AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
     return $html_text;
 }
示例#18
0
 public function payMoney()
 {
     $order_no = I('order_no');
     if (!$order_no) {
         $this->apiError(0, "未知的订单号");
     }
     require_once "Data/alipay/pay/alipay.config.php";
     require_once "Data/alipay/pay/lib/alipay_submit.class.php";
     $ali_partner = C('ALIPAY_PARTNER');
     $ali_key = C('ALIPAY_KEY');
     if ($ali_partner) {
         $alipay_config['partner'] = $ali_partner;
     }
     if ($ali_key) {
         $alipay_config['key'] = $ali_key;
     }
     /**************************请求参数**************************/
     $map['order_no'] = $order_no;
     $info = M('user_order_money')->where($map)->find();
     if (!$info || $info['type'] != 'coin') {
         $this->apiError(0, "未知的订单");
     }
     if ($info['status'] == 2) {
         $this->apiError(0, "已支付");
     }
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "create_forex_trade_wap", "partner" => trim($alipay_config['partner']), "_input_charset" => trim(strtolower($alipay_config['input_charset'])), "notify_url" => 'http://fille.wbteam.cn/index.php/Api/Pay/server_callback', "out_trade_no" => $order_no, "currency" => 'USD', "subject" => "购买" . $info['coin'] . "信用豆", "total_fee" => round($info['money'], 2));
     //建立请求
     $alipaySubmit = new \AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     //解析XML
     //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
     $doc = new DOMDocument();
     $doc->loadXML($html_text);
     //请在这里加上商户的业务逻辑程序代码
     //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
     //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
     //解析XML
     if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
         $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue;
         echo $alipay;
     }
     echo 1;
     die;
 }
示例#19
0
 function ali_pay()
 {
     import('@.ORG.Alipay.alipay_submit');
     $args = func_get_args();
     if (!$args[0] || !$args[1] || !$args[2]) {
         //0订单编号,商品描述,2订单金额,
         return false;
     }
     $path = C('Alipay_path');
     $config = (require $_SERVER['DOCUMENT_ROOT'] . $path . "config.php");
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/notify_url.php';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/call_back.php';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //操作中断返回地址
     $merchant_url = "http://" . $_SERVER['HTTP_HOST'] . '/alipay/call_back.php';
     //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
     //商户订单号
     $out_trade_no = $args[0];
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     $subject = $args[1];
     //必填
     //付款金额
     $total_fee = $args[2];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . trim($alipay_config['seller_email']) . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //必填
     //var_dump($req_data);die();
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
     echo $html_text;
 }
示例#20
0
 public function wapalipay()
 {
     vendor('Malipay.alipay_submit', '', '.class.php');
     $alipay_config = $this->wapalipay_config;
     $order = $this->order;
     //返回格式
     $format = "xml";
     $v = "2.0";
     $req_id = date('Ymdhis');
     $notify_url = C('site_url') . '/index.php/Wap/Pay/wapalipay_notify_url';
     $call_back_url = C('site_url') . '/index.php/Wap/Pay/wapalipay_call_back_url';
     $seller_email = $alipay_config['seller_email'];
     $out_trade_no = $order['orderid'];
     $subject = $order['ordername'];
     $total_fee = $order['price'];
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>';
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正确为您跳转到支付宝支付界面!');
     echo '正在跳转到支付宝进行支付...<div style="display:none">' . $html_text . '</div>';
 }
 /**
  * Change order status to WAIT_BUYER_CONFIRM_GOODS
  *
  * @param string $trade_no
  * @param bool $force_send_goods
  * @param bool $require_shipping
  * @since 1.3
  * @return string
  */
 function send_goods_confirm($trade_no, $order, $force_send_goods = false, $require_shipping = false)
 {
     if (empty($trade_no)) {
         return 'error: ' . __('Trade No. is not provided.', 'alipay');
     } else {
         if (!function_exists('curl_version')) {
             return 'error: ' . __('cURL is not installed on this server', 'alipay');
         }
     }
     // Decide if goodes need to be send automatically
     if (!in_array($order->status, array('pending', 'failed', 'on-hold'))) {
         $send_goods = false;
         if ($force_send_goods) {
             $send_goods = true;
         } else {
             if (sizeof($order->get_items()) > 0) {
                 foreach ($order->get_items() as $item) {
                     if ($item['product_id'] > 0) {
                         $_product = $order->get_product_from_item($item);
                         if (false !== $_product && ($_product->is_downloadable() && $_product->is_virtual())) {
                             $send_goods = true;
                             continue;
                         }
                     }
                     $send_goods = false;
                     break;
                 }
             }
         }
     }
     if (!$send_goods) {
         return false;
     }
     // Send requrest to alipay
     require_once "lib/alipay_submit.class.php";
     if (!$require_shipping) {
         $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => $this->partnerID, "trade_no" => $trade_no, "logistics_name" => 'ZJS', "transport_type" => 'DIRECT', "_input_charset" => $this->charset);
     } else {
         // Develop function of sending non-digital goods from WordPress backend
         // Currently this part is not used.
     }
     $alipay_config = $this->get_alipay_config();
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     if (!empty($html_text)) {
         $doc = new DOMDocument();
         $doc->loadXML($html_text);
         $success = $doc->getElementsByTagName('is_success');
         if ($success->item(0)->nodeValue == 'F') {
             // Failed to update status
             $error = $doc->getElementsByTagName('error');
             return 'error: ' . $error->item(0)->nodeValue;
         } else {
             return true;
         }
     } else {
         return 'Error: Request Failed';
     }
 }
示例#22
0
 function alipay_code()
 {
     require_once "qalipay/alipay.config.php";
     require_once "qalipay/lib/alipay_submit.class.php";
     $alipay_config_temp = $this->tickets->select('payment', array('name' => 'alipay'));
     $alipay_con = $alipay_config_temp[0];
     //接口调用时间
     $timestamp = date('Y-m-d h:i:s');
     //格式为:yyyy-MM-dd HH:mm:ss
     //动作
     $method = "add";
     //创建商品二维码
     //业务类型
     $biz_type = "10";
     //目前只支持1
     //业务数据
     $biz_data_temp = array('trade_type' => '1', 'need_address' => 'F', 'goods_info' => array('id' => '3'), 'return_url' => base_url() . "return_url.php", 'notify_url' => $notify_url = base_url() . "wechat/code_notify_url", 'show_url' => 'http://www.xiaoshuhaochi.com');
     $biz_data = json_encode($biz_data_temp);
     //格式:JSON 大字符串,详见技术文档4.2.1章节
     //echo '<pre>';print_r($biz_data);exit;
     /************************************************************/
     $alipay_config['partner'] = $alipay_con->app_id;
     $alipay_config['key'] = $alipay_con->app_secret;
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.mobile.qrcode.manage", "partner" => trim($alipay_config['partner']), "timestamp" => $timestamp, "method" => $method, "biz_type" => $biz_type, "biz_data" => $biz_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     echo '<pre>';
     print_r($parameter);
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     print_r($html_text);
     exit;
     //解析XML
     //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
     $doc = new DOMDocument();
     $doc->loadXML($html_text);
     //请在这里加上商户的业务逻辑程序代码
     //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
     //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
     //解析XML
     if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
         $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue;
         echo $alipay;
     }
 }
示例#23
0
		{"sku_id":"002",
		"sku_name":"薯条",
		"sku_price":"9.00",
		"sku_inventory":"500"}]
	},
	"need_address":"F",
	"trade_type":"1",
	
}';
//格式:JSON 大字符串,详见技术文档4.2.1章节
/************************************************************/
//构造要请求的参数数组,无需改动
$parameter = array("service" => "alipay.mobile.qrcode.manage", "partner" => trim($alipay_config['partner']), "timestamp" => $timestamp, "method" => $method, "biz_type" => $biz_type, "biz_data" => $biz_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestHttp($parameter);
var_dump($html_text);
//解析XML
//注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
$doc = new DOMDocument();
$doc->loadXML($html_text);
//请在这里加上商户的业务逻辑程序代码
//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
//解析XML
if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
    $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue;
    echo $alipay;
}
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
?>
示例#24
0
 /**
  * 支付宝
  * @param unknown_type $order_no
  * @param unknown_type $money	单位(元)
  * @param unknown_type $typeId	一级支付方式
  * @param unknown_type $typeCode	二级支付方式NO
  */
 public static function alipay($order_no, $money, $desc, $typeId = '', $typeCode = '')
 {
     $base_path = SIMPHP_ROOT . '/incs/libs/alipay/';
     require_once $base_path . "alipay.config.php";
     require_once $base_path . "lib/alipay_submit.class.php";
     /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = $order_no;
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = $alipay_config['notify_url'];
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = $alipay_config['return_url'];
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //操作中断返回地址
     $merchant_url = $alipay_config['merchant_url'];
     //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
     //卖家支付宝帐户
     $seller_email = $alipay_config['seller_email'];
     //必填
     //商户订单号
     $out_trade_no = $order_no;
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     $subject = $desc;
     //必填
     //付款金额
     $total_fee = $money;
     //单位(元)
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //必填
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_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');
     return $html_text;
 }
 /**
  * Action: Seller send goods with express
  * @return Response
  */
 public function sendGoods()
 {
     // Get all form data.
     $data = Input::all();
     $rules = array('id' => 'required', 'express_name' => 'required', 'invoice_no' => 'required');
     // Custom validation message
     $messages = array('express_name.required' => '请填写物流公司名称', 'invoice_no.required' => '请填写物流单号');
     // Begin verification
     $validator = Validator::make($data, $rules, $messages);
     if ($validator->passes()) {
         $product_order = $this->model->find(Input::get('id'));
         $product_order->is_express = true;
         $product_order->express_name = Input::get('express_name');
         $product_order->invoice_no = Input::get('invoice_no');
         // Alipay Dualfun API
         require_once app_path('api/alipay/alipay.config.php');
         require_once app_path('api/alipay/lib/alipay_submit.class.php');
         $trade_no = $this->model->where('id', Input::get('id'))->first()->alipay_trade;
         // Alipay trade number (required)
         $logistics_name = Input::get('express_name');
         // Express company name (required)
         $invoice_no = Input::get('invoice_no');
         // Express billing number
         $transport_type = "EXPRESS";
         // Express type: POST, EXPRESS or EMS
         // Constructs an array of arguments to request, no need to change
         $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
         // Establishment request
         $alipaySubmit = new AlipaySubmit($alipay_config);
         $html_text = $alipaySubmit->buildRequestHttp($parameter);
         $doc = new DOMDocument();
         $doc->loadXML($html_text);
         $product_order->save();
         return Redirect::back()->with('success', '<strong>发货成功!等待对方确认收货。</strong>');
     } else {
         return Redirect::back()->withInput()->withErrors($validator);
     }
 }
示例#26
0
 public function action_alipay()
 {
     $GLOBALS['cfg_alipay_pid'] = Common::getSysConf('value', 'cfg_alipay_pid', 0);
     //pid
     $GLOBALS['cfg_alipay_key'] = Common::getSysConf('value', 'cfg_alipay_key', 0);
     //key
     $GLOBALS['cfg_alipay_account'] = Common::getSysConf('value', 'cfg_alipay_account', 0);
     //帐号
     include PUBLICPATH . '/thirdpay/alipay/alipay.config.php';
     include PUBLICPATH . '/thirdpay/alipay/lib/alipay_submit.class.php';
     /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = $GLOBALS['cfg_basehost'] . "/shouji/thirdpay/alipay_notifyurl";
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = $GLOBALS['cfg_basehost'] . "/shouji/thirdpay/alipay_backurl";
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //操作中断返回地址
     $merchant_url = "http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/xxxx.php";
     //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
     //卖家支付宝帐户
     $seller_email = $GLOBALS['cfg_alipay_account'];
     //必填
     //商户订单号
     $out_trade_no = $_POST['ordersn'];
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     $subject = $_POST['subject'];
     //必填
     //付款金额
     $total_fee = $_POST['price'];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
     echo $html_text;
 }
 public function dopay()
 {
     if (!$this->token) {
         echo 'token不能为空';
         exit;
     }
     if (!$this->order) {
         $name = "Product";
         $back = U($name . "/my", array('token' => $this->token, 'wecha_id' => $this->wecha_id));
         $this->error('订单不能为空', U($name . $back));
     }
     $order = $this->order;
     $product = $this->product;
     $alipay_config = $this->alipay_config;
     //返回格式
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //服务器异步通知页面路径
     $notify_url = C('site_url') . '/api/malipay/notify_url.php';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = C('site_url') . '/api/malipay/call_back_url.php';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //卖家支付宝帐户
     //$seller_email = $_POST['WIDseller_email'];
     $seller_email = $this->pay_m_alipay_config['name'];
     //必填
     //商户订单号
     //$out_trade_no = $_POST['WIDout_trade_no'];
     $out_trade_no = $order['sn'];
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     //$subject = $_POST['WIDsubject'];
     $subject = $product['name'];
     //必填
     //付款金额
     //$total_fee = $_POST['WIDtotal_fee'];
     $total_fee = $order['price'];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>';
     //必填
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '正确为您跳转到支付宝支付界面!');
     echo $html_text;
 }
示例#28
0
 public function send()
 {
     import("@.ORG.Alipay.AlipaySubmit");
     //计算得出通知验证结果
     $alipaySubmit = new AlipaySubmit($this->setconfig());
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     //支付宝交易号
     $trade_no = $this->_get('WIDtrade_no');
     //必填
     //物流公司名称
     $logistics_name = '韵达快运';
     //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
     /************************************************************/
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($parameter);
     //解析XML
     //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件
     $doc = new DOMDocument();
     $doc->loadXML($html_text);
     M('Indent')->where(array('id' => $this->_get('id')))->setField('status', 3);
     if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) {
         $alipay = $doc->getElementsByTagName("alipay")->item(0)->nodeValue;
         echo $alipay;
     }
 }
示例#29
0
 /**
  * 生成支付代码
  * @param   array   $order      订单信息
  * @param   array   $payment    支付方式信息
  */
 function get_code($order, $payment)
 {
     if (!defined('EC_CHARSET')) {
         $charset = 'utf-8';
     } else {
         $charset = EC_CHARSET;
     }
     $alipay_config = array();
     $alipay_config['partner'] = $payment['alipay_partner'];
     //安全检验码,以数字和字母组成的32位字符
     //如果签名方式设置为“MD5”时,请设置该参数
     $alipay_config['key'] = $payment['alipay_key'];
     //商户的私钥(后缀是.pen)文件相对路径
     //如果签名方式设置为“0001”时,请设置该参数
     //$alipay_config['private_key_path']	= 'key/rsa_private_key.pem';
     //支付宝公钥(后缀是.pen)文件相对路径
     //如果签名方式设置为“0001”时,请设置该参数
     // $alipay_config['ali_public_key_path']= 'key/alipay_public_key.pem';
     //签名方式 不需修改
     $alipay_config['sign_type'] = 'MD5';
     //字符编码格式 目前支持 gbk 或 utf-8
     $alipay_config['input_charset'] = 'utf-8';
     $alipay_config['cacert'] = '';
     // $alipay_config['cacert']    = ROOT_PATH .'mobile/includes/modules/cacert.pem';
     //ca证书路径地址,用于curl中ssl校验
     //请保证cacert.pem文件在当前文件夹目录中
     //$alipay_config['cacert']    = getcwd().'\\cacert.pem';
     //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
     $alipay_config['transport'] = 'http';
     require_once ROOT_PATH . "includes/modules/lib/alipay_submit.class.php";
     $format = "xml";
     //必填,不需要修改
     //返回格式
     $v = "2.0";
     //必填,不需要修改
     //请求号
     $req_id = date('Ymdhis');
     //必填,须保证每次请求都是唯一
     //**req_data详细信息**
     //服务器异步通知页面路径
     $notify_url = $GLOBALS['hhs']->url() . 'alipay/notify_url.php';
     //需http://格式的完整路径,不允许加?id=123这类自定义参数
     //页面跳转同步通知页面路径
     $call_back_url = $GLOBALS['hhs']->url() . 'alipay/alipay.php';
     $seller_email = $payment['alipay_account'];
     //必填
     //商户订单号
     $out_trade_no = $order['order_sn'] . time();
     //商户网站订单系统中唯一订单号,必填
     //订单名称
     $subject = $order['order_sn'];
     //必填
     //付款金额
     $total_fee = $order['order_amount'];
     //必填
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee></direct_trade_create_req>';
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "v" => $v, "sec_id" => trim($alipay_config['sign_type']), "format" => $format, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
     //var_dump($html_text);
     return $html_text;
     return $html_text;
 }
 public function doalipayWap()
 {
     //echo "<pre>";var_dump( $_SERVER );echo "</pre>";
     //返回格式
     $format = "xml";
     //必填,不需要修改//返回格式
     $v = "2.0";
     //这里我们通过TP的C函数把配置项参数读出,赋给$alipay_config;
     $alipay_config = C('alipay_config');
     /**************************请求参数**************************/
     $payment_type = C('alipay_config.sign_type');
     //支付类型 //必填,不能修改
     $notify_url = C('alipay.notify_urlWap');
     //服务器异步通知页面路径
     $return_url = C('alipay.return_urlWap');
     //页面跳转同步通知页面路径
     $merchant_url = C('alipay.merchant_urlWap');
     //操作中断返回地址
     $seller_email = C('alipay.seller_email');
     //卖家支付宝帐户必填
     $out_trade_no = $_POST['trade_no'];
     //商户订单号 通过支付页面的表单进行传递,注意要唯一!
     $subject = $_POST['ordsubject'];
     //订单名称 //必填 通过支付页面的表单进行传递
     $total_fee = $_POST['ordtotal_fee'];
     //付款金额  //必填 通过支付页面的表单进行传递
     $body = $_POST['ordbody'];
     //订单描述 通过支付页面的表单进行传递
     $show_url = $_POST['ordshow_url'];
     //商品展示地址 通过支付页面的表单进行传递
     $anti_phishing_key = "";
     //防钓鱼时间戳 //若要使用请调用类文件submit中的query_timestamp函数
     //$exter_invoke_ip = get_client_ip();//var_dump($exter_invoke_ip);die();   //客户端的IP地址
     $exter_invoke_ip = $_SERVER["REMOTE_ADDR"];
     //var_dump($exter_invoke_ip);die();   //客户端的IP地址
     /************************************************************/
     //对前台传过来的价钱数据做判断
     $orderId = $out_trade_no;
     $oOb = M("order");
     $orderArr = $oOb->field("count(*) as num")->where("orderId='{$orderId}'")->select();
     $num = $orderArr[0]['num'];
     if ($num == 0) {
         $coOb = M("cardorder");
         $arr = $coOb->where("orderId='{$orderId}'")->select();
         //var_dump($arr);
         $realPrice = $arr[0]['price'] - $arr[0]['discount'] - $arr[0]['yhqPrice'];
         //var_dump($total_fee); var_dump($realPrice); die;
         if ($total_fee != $realPrice) {
             header("location:index.php?m=Member&a=payFail");
         }
     } else {
         $arr = $oOb->where("orderId='{$orderId}'")->select();
         $realPrice = $arr[0]['price'] - $arr[0]['discount'] - $arr[0]['yhq'];
         if ($total_fee != $realPrice) {
             header("location:index.php?m=Member&a=payFail");
         }
     }
     $call_back_url = $return_url;
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     //echo "req_data";var_dump($req_data);echo "----------------------------------";
     //必填
     //构造要请求的参数数组,无需改动
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($alipay_config['partner']), "sec_id" => $payment_type, "format" => $format, "v" => $v, "req_id" => $out_trade_no, "req_data" => trim($req_data), "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //echo "<pre>";var_dump($para_token);echo "</pre>";die();
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     //var_dump($html_text);die();
     //URLDECODE返回的信息
     $html_text = urldecode($html_text);
     //echo "<pre>";var_dump($html_text);echo "</pre>";die();
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //var_dump($para_html_text);die;
     //获取request_token
     $request_token = $para_html_text['request_token'];
     //var_dump($request_token);
     /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
     //业务详细
     $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
     //必填
     $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($alipay_config['partner']), "sec_id" => $payment_type, "format" => $format, "v" => $v, "req_id" => $out_trade_no, "req_data" => trim($req_data), "_input_charset" => trim(strtolower($alipay_config['input_charset'])));
     //var_dump($parameter);die();
     $parameter1 = paraFilter($parameter);
     $parameter2 = argSort($parameter);
     //建立请求
     $alipaySubmit = new AlipaySubmit($alipay_config);
     $mysign = $alipaySubmit->buildRequestMysign($parameter2);
     $parameter2['sign'] = $mysign;
     //echo "<pre>";var_dump($parameter2);echo "</pre>";die();
     $html_text = $alipaySubmit->buildRequestForm($parameter2, "get", "确认");
     echo $html_text;
 }