public function fuwu_code()
 {
     require './PigCms/Lib/ORG/Fuwu/HttpRequst.php';
     require './PigCms/Lib/ORG/Fuwu/aop/AopClient.php';
     require './PigCms/Lib/ORG/Fuwu/AlipaySign.php';
     $sceneId = (int) $_GET['id'];
     $biz_content = '{"codeInfo": {"scene": {"sceneId": "' . $sceneId . '"}},"codeType": "PERM","expireSecond": "","showLogo": "N"}';
     $app_id = M("Wxuser")->where(array('token' => $this->token))->getField('fuwuappid');
     $url = 'https://openapi.alipay.com/gateway.do';
     $data = array('app_id' => $app_id, 'method' => 'alipay.mobile.public.qrcode.create', 'charset' => 'UTF-8', 'sign_type' => 'RSA', 'timestamp' => date('Y-m-d H:i:s', time()), 'biz_content' => $biz_content, 'version' => '1.0');
     require './PigCms/Lib/ORG/Fuwu/config.php';
     $AlipaySign = new AlipaySign();
     $data['sign'] = $AlipaySign->rsa_sign($this->buildQuery($data), $config['merchant_private_key_file']);
     $re = new HttpRequest();
     $result = $re->sendPostRequst($url, $data);
     $return = json_decode(iconv('GBK', 'UTF-8', $result), true);
     if ($return['alipay_mobile_public_qrcode_create_response']['code'] == 200) {
         $GetDb = M('Recognition');
         $where_GetDb['id'] = $sceneId;
         $save_GetDb['fuwu_code_url'] = $return['alipay_mobile_public_qrcode_create_response']['code_img'];
         $update_GetDb = $GetDb->where($where_GetDb)->save($save_GetDb);
         if ($update_GetDb != false) {
             $this->success('获取成功');
         } else {
             $this->error('操作失败');
         }
     }
 }
Example #2
0
 public function index($token)
 {
     $app_id = M('Wxuser')->where(array('token' => $token))->getField('fuwuappid');
     if ($_GET['auth_code'] == '') {
         $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
         $api_url = 'https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=' . $app_id . '&auth_skip=false&scope=auth_userinfo,auth_contact&redirect_uri=' . urlencode($redirect_uri);
         echo '<script>window.location.href=\'' . $api_url . '\'</script>';
     } else {
         $auth_code = $_GET['auth_code'];
         $fuwuurl = 'https://openapi.alipay.com/gateway.do';
         $fuwudata = array('app_id' => $app_id, 'method' => 'alipay.system.oauth.token', 'charset' => 'UTF-8', 'sign_type' => 'RSA', 'timestamp' => date('Y-m-d H:i:s', time()), 'version' => '1.0', 'grant_type' => 'authorization_code', 'code' => $auth_code);
         require './PigCms/Lib/ORG/Fuwu/config.php';
         $AlipaySign = new AlipaySign();
         ksort($fuwudata);
         $params = array();
         foreach ($fuwudata as $key => $value) {
             $params[] = $key . '=' . $value;
         }
         $fuwudata_build = implode('&', $params);
         $fuwudata['sign'] = $AlipaySign->rsa_sign($fuwudata_build, $config['merchant_private_key_file']);
         $re = new HttpRequest();
         $fuwu_result = $re->sendPostRequst($fuwuurl, $fuwudata);
         $return = json_decode(iconv('GBK', 'UTF-8', $fuwu_result), true);
         if ($return['alipay_system_oauth_token_response']['access_token'] != '') {
             $auth_token = $return['alipay_system_oauth_token_response']['access_token'];
             $userinfo_url = 'https://openapi.alipay.com/gateway.do';
             $userinfo_data = array('app_id' => $app_id, 'method' => 'alipay.user.userinfo.share', 'charset' => 'GBK', 'sign_type' => 'RSA', 'timestamp' => date('Y-m-d H:i:s', time()), 'version' => '1.0', 'auth_token' => $auth_token);
             ksort($userinfo_data);
             $params2 = array();
             foreach ($userinfo_data as $key2 => $value2) {
                 $params2[] = $key2 . '=' . $value2;
             }
             $userinfo_data_build = implode('&', $params2);
             $userinfo_data['sign'] = $AlipaySign->rsa_sign($userinfo_data_build, $config['merchant_private_key_file']);
             $userinfo_result = $re->sendPostRequst($userinfo_url, $userinfo_data);
             $userinfo_return = json_decode(iconv('GBK', 'UTF-8', $userinfo_result), true);
             if ($userinfo_return['alipay_user_userinfo_share_response']['user_id'] != '') {
                 $m_fuwuuser = M('fuwuuser');
                 $where_fuwuuser['wecha_id'] = 'z_' . md5($userinfo_return['alipay_user_userinfo_share_response']['user_id']);
                 $where_fuwuuser['token'] = $token;
                 $fuwuuser = $m_fuwuuser->where($where_fuwuuser)->find();
                 if ($fuwuuser == '') {
                     $add_fuwuuser = $userinfo_return['alipay_user_userinfo_share_response'];
                     $add_fuwuuser['wecha_id'] = 'z_' . md5($userinfo_return['alipay_user_userinfo_share_response']['user_id']);
                     $add_fuwuuser['token'] = $token;
                     $add_fuwuuser['addtime'] = time();
                     $id_fuwuuser = $m_fuwuuser->add($add_fuwuuser);
                 } else {
                     $save_fuwuuser = $userinfo_return['alipay_user_userinfo_share_response'];
                     $update_fuwuuser = $m_fuwuuser->where($where_fuwuuser)->save($save_fuwuuser);
                 }
                 $wecha_id = 'z_' . md5($userinfo_return['alipay_user_userinfo_share_response']['user_id']);
                 return $wecha_id;
             }
         }
     }
 }
Example #3
0
 public function apiData($method, $biz_content)
 {
     $url = 'https://openapi.alipay.com/gateway.do';
     $data = array('app_id' => $this->appid, 'method' => $method, 'charset' => 'UTF-8', 'sign_type' => 'RSA', 'timestamp' => date('Y-m-d H:i:s', time()), 'biz_content' => $biz_content, 'version' => '1.0');
     require './weimicms/Lib/ORG/Fuwu/config.php';
     $AlipaySign = new AlipaySign();
     $data['sign'] = $AlipaySign->rsa_sign($this->buildQuery($data), $config['merchant_private_key_file']);
     $re = new HttpRequest();
     $result = $re->sendPostRequst($url, $data);
     return json_decode(iconv('GBK', 'UTF-8', $result), true);
 }
Example #4
0
	public function verifygw() {
		$biz_content = HttpRequest::getRequest ( "biz_content" );
		$as = new AlipaySign ();
		$xml = simplexml_load_string ( $biz_content );
		// print_r($xml);
		$EventType = ( string ) $xml->EventType;
		// echo $EventType;
		if ($EventType == "verifygw") {
			require 'config.php';
			// global $config;
			// print_r ( $config );
			$response_xml = "<success>true</success><biz_content>" . $as->getPublicKeyStr($config ['merchant_public_key_file']) . "</biz_content>";
			// echo $response_xml;
			$return_xml = $as->sign_response ( $response_xml, $config ['charset'], $config ['merchant_private_key_file'] );
			file_put_contents ( "log.txt", $return_xml, FILE_APPEND );
			echo $return_xml;
			exit ();
		}
	}
Example #5
0
 public function verifygw($is_sign_success, $merchant_public_key_file, $merchant_private_key_file, $charset)
 {
     $biz_content = HttpRequest::getRequest("biz_content");
     $as = new AlipaySign();
     $xml = simplexml_load_string($biz_content);
     // print_r($xml);
     $EventType = (string) $xml->EventType;
     // echo $EventType;
     if ($EventType == "verifygw") {
         if ($is_sign_success) {
             $response_xml = "<success>true</success><biz_content>" . $as->getPublicKeyStr($merchant_public_key_file) . "</biz_content>";
         } else {
             // echo $response_xml;
             $response_xml = "<success>false</success><error_code>VERIFY_FAILED</error_code><biz_content>" . $as->getPublicKeyStr($merchant_public_key_file) . "</biz_content>";
         }
         $return_xml = $as->sign_response($response_xml, $charset, $merchant_private_key_file);
         writeLog("response_xml: " . $return_xml);
         echo $return_xml;
         exit;
     }
 }
Example #6
0
 public function mkAckMsg($toUserId)
 {
     global $_GP;
     $as = new AlipaySign();
     $response_xml = "<XML><ToUserId><![CDATA[" . $toUserId . "]]></ToUserId><AppId><![CDATA[" . $_GP['alipay_config']['app_id'] . "]]></AppId><CreateTime>" . time() . "</CreateTime><MsgType><![CDATA[ack]]></MsgType></XML>";
     $return_xml = $as->sign_response($response_xml, $_GP['alipay_config']['charset'], $_GP['alipay_config']['merchant_private_key_file']);
     return $return_xml;
 }
Example #7
0
 function mkAckMsg($toUserId)
 {
     $as = new AlipaySign();
     require 'config.php';
     $response_xml = "<XML><ToUserId><![CDATA[" . $toUserId . "]]></ToUserId><AppId><![CDATA[" . $config['app_id'] . "]]></AppId><CreateTime>" . time() . "</CreateTime><MsgType><![CDATA[ack]]></MsgType></XML>";
     $return_xml = $as->sign_response($response_xml, $config['charset'], $config['merchant_private_key_file']);
     writeLog("response_xml: " . $return_xml);
     return $return_xml;
 }
Example #8
0
	/**
	 * 异步发送消息给用户
	 *
	 * @param string $biz_content        	
	 * @param string $isMultiSend
	 *        	如果发给所有人,则此参数必须为true,且biz_content中的toUserId必须为空
	 * @return string
	 */
	public function sendMsgRequest($biz_content, $isMultiSend = FALSE) {
		require FUWU_PATH.'config.php';
		$paramsArray = array (
				'method' => "alipay.mobile.public.message.custom.send",
				'biz_content' => $biz_content,
				'charset' => $config ['charset'],
				'sign_type' => 'RSA',
				'app_id' => FUWU_APPID,
				'timestamp' => date ( 'Y-m-d H:i:s', time () ) 
		);
		if ($isMultiSend) {
			$paramsArray ['method'] = "alipay.mobile.public.message.total.send";
		}
		require_once FUWU_PATH.'AlipaySign.php';
		$as = new AlipaySign ();
		$sign = $as->sign_request ( $paramsArray, $config ['merchant_private_key_file'] );
		$paramsArray ['sign'] = $sign;
		// print_r ( $paramsArray );
		// 日志记录下受到的请求
		file_put_contents ( "log.txt", var_export ( $paramsArray, true ) . "\r\n", FILE_APPEND );
		return HttpRequest::sendPostRequst ( $config ['gatewayUrl'], $paramsArray );
	}
Example #9
0
 private function bulidMenuPostData($method, $bizcontent = "")
 {
     global $_GP;
     require_once WEB_ROOT . '/includes/lib/alipaySDK/config.php';
     require_once WEB_ROOT . '/includes/lib/alipaySDK/AlipaySign.php';
     $paramsArray = array('method' => $method, 'sign_type' => 'RSA', 'app_id' => $_GP['alipay_config']['app_id'], 'timestamp' => date('Y-m-d H:i:s', time()));
     if ($bizcontent) {
         $paramsArray['biz_content'] = $bizcontent;
     }
     $as = new AlipaySign();
     $sign = $as->sign_request($paramsArray, $_GP['alipay_config']['merchant_private_key_file']);
     $paramsArray['sign'] = $sign;
     return $paramsArray;
 }
Example #10
0
$sign = HttpRequest::getRequest ( "sign" );
$sign_type = HttpRequest::getRequest ( "sign_type" );
$biz_content = HttpRequest::getRequest ( "biz_content" );
$service = HttpRequest::getRequest ( "service" );
$charset = HttpRequest::getRequest ( "charset" );


if (empty($sign)||empty($sign_type)||empty($biz_content)||empty($service)||empty($charset)){
	echo "some parameter is empty.";
	exit();
}

//收到请求,先验证签名

$as = new AlipaySign ();
$sign_verify= $as->rsaCheckV2 ( $_REQUEST, $config ['alipay_public_key_file'] );
if (!$sign_verify){
	echo "sign verfiy fail.";
	exit();
}

//验证网关请求
if (HttpRequest::getRequest("service")=="alipay.service.check"){
// 	Gateway::verifygw();
	$gw=new Gateway();
	$gw->verifygw();
}else if (HttpRequest::getRequest("service")=="alipay.mobile.public.message.notify"){
	//处理收到的消息
	require_once 'Message.php';
	$msg=new Message($biz_content);
 public function fuwu_code()
 {
     if (intval($this->wxuser["winxintype"]) != 3 && $this->wxuser["fuwuappid"] == "") {
         $this->error($isgostr);
         exit;
     }
     require "./weimicms/Lib/ORG/Fuwu/HttpRequst.php";
     require "./weimicms/Lib/ORG/Fuwu/aop/AopClient.php";
     require "./weimicms/Lib/ORG/Fuwu/AlipaySign.php";
     $sceneId = (int) $_GET["id"];
     $biz_content = "{\"codeInfo\": {\"scene\": {\"sceneId\": \"" . $sceneId . "\"}},\"codeType\": \"PERM\",\"expireSecond\": \"\",\"showLogo\": \"N\"}";
     $app_id = M("Wxuser")->where(array("token" => $this->token))->getField("fuwuappid");
     $url = "https://openapi.alipay.com/gateway.do";
     $data = array("app_id" => $app_id, "method" => "alipay.mobile.public.qrcode.create", "charset" => "UTF-8", "sign_type" => "RSA", "timestamp" => date("Y-m-d H:i:s", time()), "biz_content" => $biz_content, "version" => "1.0");
     require "./weimicms/Lib/ORG/Fuwu/config.php";
     $AlipaySign = new AlipaySign();
     $data["sign"] = $AlipaySign->rsa_sign($this->buildQuery($data), $config["merchant_private_key_file"]);
     $re = new HttpRequest();
     $result = $re->sendPostRequst($url, $data);
     $return = json_decode(iconv("GBK", "UTF-8", $result), true);
     if ($return["alipay_mobile_public_qrcode_create_response"]["code"] == 200) {
         $GetDb = M("Recognition");
         $where_GetDb["id"] = $sceneId;
         $save_GetDb["fuwu_code_url"] = $return["alipay_mobile_public_qrcode_create_response"]["code_img"];
         $update_GetDb = $GetDb->where($where_GetDb)->save($save_GetDb);
         if ($update_GetDb != false) {
             $this->success("获取成功");
         } else {
             $this->error("操作失败");
         }
     } else {
         $this->error("appid不正确");
     }
 }