zoukankan      html  css  js  c++  java
  • 微信企业号-卡券

    /卡劵服务start**********************/
    /

    * 上传卡劵LOGO
    * @param string $access_token
    * @param array $file $_FILES数组中的单个元素
    * @return string $url 商户logo_url
    */
    public function upload_card_logo($access_token, array $file){
    log_write('开始上传卡劵LOGO');

    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token=" . $access_token . "&type=card_logo";
    		$curldata = array($file);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('上传卡卷LOGO失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('上传卡卷LOGO失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('上传卡劵成功: ' . $file['name']);
    				return $tem_data['url'];
    			} else {
    				log_write('上传卡劵失败: ' . $file['name']);
    				throw new SCException($tem_data['errmsg']);
    			}
    			
    		} else {
    			throw new SCException($data['httpcode']);
    			
    		}
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 创建卡劵并返回卡劵ID
    * @param string $access_token
    * @param array $data 卡卷信息
    * @return string $card_id 卡券ID
    */
    public function get_card_id($access_token, $data){
    	log_write('开始创建卡劵');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/create?access_token=" . $access_token;
    		$datacurl = array();
    		switch($data['card_type']){
    			case '1':{
    				//优惠劵
    				$datacurl['card'] = array(
    					'card_type' => "GENERAL_COUPON",
    					"general_coupon" => array(
    						"base_info" => array(
    							"logo_url" => $data['logo_url'], 
    							"brand_name" => $data['brand_name'], 
    							"code_type" => $data['code_type'], 
    							"title" => $data['title'], 
    							"color" => $data['color'], 
    							"notice" => $data['notice'], 
    							"service_phone" => $data['service_phone'], 
    							"description" => $data['description'], 
    							"date_info" => array(
    								"type" => $data['type'],
    								"begin_timestamp" => $data['begin_timestamp'], 
    								"end_timestamp" => $data['end_timestamp']
    							), 
    							"sku" => array(
    								'quantity' => $data['quantity']
    							),
    							"get_limit" => $data['get_limit'],
    							"bind_openid" => $data['bind_openid'],
    							"can_share" => $data['can_share'],
    							"can_give_friend" => $data['can_give_friend'],
    							"custom_url_name" => $data['custom_url_name'],
    							"custom_url" => $data['custom_url'],
    							"custom_url_sub_title" => $data['custom_url_sub_title'],
    							"promotion_url_name" => $data['promotion_url_name'],
    							"promotion_url" => $data['promotion_url'],
    							"source" => $data['source']
    						),
    						'default_detail' => $data['default_detail']
    					),
    				);
    				break;
    			}
    			case '2':{
    				//团购券
    				$datacurl['card'] = array(
    					'card_type' => "GROUPON",
    					"groupon" => array(
    						"base_info" => array(
    							"logo_url" => $data['logo_url'], 
    							"brand_name" => $data['brand_name'], 
    							"code_type" => $data['code_type'], 
    							"title" => $data['title'], 
    							"color" => $data['color'], 
    							"notice" => $data['notice'], 
    							"service_phone" => $data['service_phone'], 
    							"description" => $data['description'], 
    							"date_info" => array(
    								"type" => $data['type'],
    								"begin_timestamp" => $data['begin_timestamp'], 
    								"end_timestamp" => $data['end_timestamp']
    							), 
    							"sku" => array(
    								'quantity' => $data['quantity']
    							),
    							"get_limit" => $data['get_limit'],
    							"bind_openid" => $data['bind_openid'],
    							"can_share" => $data['can_share'],
    							"can_give_friend" => $data['can_give_friend'],
    							"custom_url_name" => $data['custom_url_name'],
    							"custom_url" => $data['custom_url'],
    							"custom_url_sub_title" => $data['custom_url_sub_title'],
    							"promotion_url_name" => $data['promotion_url_name'],
    							"promotion_url" => $data['promotion_url'],
    							"source" => $data['source']
    						),
    						'deal_detail' => $data['deal_detail']
    					),
    				);
    				break;
    			}
    			case '3':{
    				//代金券
    				$datacurl['card'] = array(
    					'card_type' => "CASH",
    					"cash" => array(
    						"base_info" => array(
    							"logo_url" => $data['logo_url'], 
    							"brand_name" => $data['brand_name'], 
    							"code_type" => $data['code_type'], 
    							"title" => $data['title'], 
    							"color" => $data['color'], 
    							"notice" => $data['notice'], 
    							"service_phone" => $data['service_phone'], 
    							"description" => $data['description'], 
    							"date_info" => array(
    								"type" => $data['type'],
    								"begin_timestamp" => $data['begin_timestamp'], 
    								"end_timestamp" => $data['end_timestamp']
    							), 
    							"sku" => array(
    								'quantity' => $data['quantity']
    							),
    							"get_limit" => $data['get_limit'],
    							"bind_openid" => $data['bind_openid'],
    							"can_share" => $data['can_share'],
    							"can_give_friend" => $data['can_give_friend'],
    							"custom_url_name" => $data['custom_url_name'],
    							"custom_url" => $data['custom_url'],
    							"custom_url_sub_title" => $data['custom_url_sub_title'],
    							"promotion_url_name" => $data['promotion_url_name'],
    							"promotion_url" => $data['promotion_url'],
    							"source" => $data['source']
    						),
    						'least_cost' => $data['least_cost'],
    						'reduce_cost' => $data['reduce_cost'],
    					),
    				);
    			break;
    			}
    			case '4':{
    				//折扣券
    				$datacurl['card'] = array(
    					'card_type' => "DISCOUNT",
    					"discount" => array(
    						"base_info" => array(
    							"logo_url" => $data['logo_url'], 
    							"brand_name" => $data['brand_name'], 
    							"code_type" => $data['code_type'], 
    							"title" => $data['title'], 
    							"color" => $data['color'], 
    							"notice" => $data['notice'], 
    							"service_phone" => $data['service_phone'], 
    							"description" => $data['description'], 
    							"date_info" => array(
    								"type" => $data['type'],
    								"begin_timestamp" => $data['begin_timestamp'], 
    								"end_timestamp" => $data['end_timestamp']
    							), 
    							"sku" => array(
    								'quantity' => $data['quantity']
    							),
    							"get_limit" => $data['get_limit'],
    							"bind_openid" => $data['bind_openid'],
    							"can_share" => $data['can_share'],
    							"can_give_friend" => $data['can_give_friend'],
    							"custom_url_name" => $data['custom_url_name'],
    							"custom_url" => $data['custom_url'],
    							"custom_url_sub_title" => $data['custom_url_sub_title'],
    							"promotion_url_name" => $data['promotion_url_name'],
    							"promotion_url" => $data['promotion_url'],
    							"source" => $data['source']
    						),
    						'discount' => $data['discount'],
    					),
    				);
    			break;
    			}
    			case '5':{
    				//礼品券
    				$datacurl['card'] = array(
    					'card_type' => "GIFT",
    					"gift" => array(
    						"base_info" => array(
    							"logo_url" => $data['logo_url'], 
    							"brand_name" => $data['brand_name'], 
    							"code_type" => $data['code_type'], 
    							"title" => $data['title'], 
    							"color" => $data['color'], 
    							"notice" => $data['notice'], 
    							"service_phone" => $data['service_phone'], 
    							"description" => $data['description'], 
    							"date_info" => array(
    								"type" => $data['type'],
    								"begin_timestamp" => $data['begin_timestamp'], 
    								"end_timestamp" => $data['end_timestamp']
    							), 
    							"sku" => array(
    								'quantity' => $data['quantity']
    							),
    							"get_limit" => $data['get_limit'],
    							"bind_openid" => $data['bind_openid'],
    							"can_share" => $data['can_share'],
    							"can_give_friend" => $data['can_give_friend'],
    							"custom_url_name" => $data['custom_url_name'],
    							"custom_url" => $data['custom_url'],
    							"custom_url_sub_title" => $data['custom_url_sub_title'],
    							"promotion_url_name" => $data['promotion_url_name'],
    							"promotion_url" => $data['promotion_url'],
    							"source" => $data['source']
    						),
    						'gift' => $data['gift'],
    					),
    				);
    			break;
    			}
    		}
    		$curldata = json_encode($datacurl);
    		$res = g('http') -> curl($url, $curldata);
    		
    		$res['httpcode'] != 0 && log_write('创建卡劵失败:重试 1') && $res = g('http') -> curl($url, $curldata);
    		$res['httpcode'] != 0 && log_write('创建卡劵失败:重试 2') && $res = g('http') -> curl($url, $curldata);
    		
    		if ($res['httpcode'] == 0) {
    			$tem_res = json_decode($res['content'], true);
    			if($tem_res['errcode'] == 0 && $tem_res['errmsg'] == 'ok'){
    				log_write('创建卡劵成功: ' . $data['title']);
    				return $tem_res['card_id'];
    			} else {
    				log_write('创建卡劵失败: ' . $data['title']);
    				throw new SCException($tem_res['errmsg']);
    			}
    			
    		} else {
    			throw new SCException($res['httpcode']);
    		}
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    public function create_card()
    {	
    }
    
    /**
    * 获取卡券详情
    * @param string $access_token
    * @param string $card_id
    * @return array 卡券详情
    */
    public function get_card_detail($access_token, $card_id){
    	log_write('开始获取卡券详情');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/get?access_token=" . $access_token;
    		$curldata = array('card_id' => $card_id);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('获取卡券详情失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('获取卡券详情失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('获取卡券详情成功: ' . $card_id);
    				return $tem_data['card'];
    				
    			} else {
    				log_write('获取卡券详情失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 获取卡券摘要列表
    * @param string $access_token
    * @param string $offset 查询卡列表的起始偏移量,从0开始,即offset: 5是指从从列表里的第六个开始读取。
    * @param string $count 需要查询的卡片的数量(数量最大50)。
    * @param string $status  支持开发者拉出指定状态的卡券列表。若不填默认拉取所有状态
    * @return array 卡券摘要列表
    */
    public function get_card_list($access_token, $offset=0, $count=20, $status = ''){
    	log_write('开始获取卡券摘要列表');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/batchget?access_token=" . $access_token;
    		$curldata = array('offset' => $offset, 'count' => $count, 'status' => $status);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('获取卡券摘要列表失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('获取卡券摘要列表失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('获取卡券摘要列表成功: 总共' . $tem_data['total_num']);
    				return array('card_digest_list' => $tem_data['card_digest_list'], 'total_num' => $tem_data['total_num']) ;
    				
    			} else {
    				log_write('获取卡券摘要列表失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 修改卡劵库存
    * @param string $access_token
    * @param string $increase_stock_value 增加多少库存,支持不填或者填0
    * @param string $reduce_stock_value 减少多少库存,支持不填或者填0(increase_stock_value跟reduce_stock_value必须填其中一个)
    * @return boolean
    */
    public function edit_card_stock($access_token, $increase_stock_value=0, $reduce_stock_value=0){
    	log_write('开始修改卡劵库存');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/modifystock?access_token=" . $access_token;
    		$curldata = array('increase_stock_value' => $increase_stock_value, 'reduce_stock_value' => $reduce_stock_value);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('修改卡劵库存失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('修改卡劵库存失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('修改卡劵库存成功');
    				return true;
    				
    			} else {
    				log_write('修改卡劵库存失败');
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 删除卡劵
    * @param string $access_token
    * @param string $card_id 	卡券id
    * @return boolean
    */
    public function delete_card($access_token, $card_id){
    	log_write('开始删除卡劵');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/delete?access_token=" . $access_token;
    		$curldata = array('card_id' => $card_id);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('删除卡劵失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('删除卡劵失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('删除卡劵成功');
    				return true;
    				
    			} else {
    				log_write('删除卡劵失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 推送卡劵信息
    * @param string $access_token
    * @param int $agentid 	企业应用的id,整型
    * @param string $card_id 卡券ID
    * @param string $touser 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
    * @param string $toparty 	部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
    * @param string $totag 标签ID列表,多个接收者用‘|’分隔。当touser为@all时忽略本参数
    * @return boolean
    */
    public function push_card_message($access_token, $agentid, $card_id, $touser='', $toparty='', $totag=''){
    	log_write('开始推送卡劵信息');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" . $access_token;
    		$curldata = array(
    			'touser' => $touser,
    			'toparty' => $toparty,
    			'totag' => $totag,
    			'msgtype' => 'card',
    			'agentid' => $agentid,
    			'card' => array('card_id' => $card_id),
    			);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('推送卡劵信息失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('推送卡劵信息失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('推送卡劵信息成功');
    				return true;
    				
    			} else {
    				log_write('推送卡劵信息失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 获取卡券图文消息内容
    * @param string $access_token
    * @param int $agentid 	企业应用的id,整型
    * @param string $card_id 卡券ID
    * @return string content 将返回代内容填入到图文消息中content字段,即可将卡券嵌入图文消息发送
    */
    public function get_card_mpnews($access_token, $agentid, $card_id){
    	log_write('开始获取卡劵图文信息内容');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/mpnews/gethtml?access_token=" . $access_token;
    		$curldata = array(
    			'agentid' => $agentid,
    			'card_id' => $card_id,
    			);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('获取卡劵图文信息内容失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('获取卡劵图文信息内容失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('获取卡劵图文信息内容成功');
    				return $tem_data['content'];
    				
    			} else {
    				log_write('获取卡劵图文信息内容失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 创建卡劵二维码
    * @param string $access_token
    * @param string $card_id 	卡券ID
    * @param string $expire_seconds 指定二维码的有效时间,范围是60 ~ 1800秒。不填默认为永久有效。
    * @param string $openid 指定领取者的openid,只有该用户能领取。bind_openid字段为true的卡券必须填写,非指定openid不必填写。
    * @param string $is_unique_code 指定下发二维码,生成的二维码随机分配一个code,领取后不可再次扫描。填写true或false。默认false。
    * @param string $outer_id 	领取场景值,用于领取渠道的数据统计,默认值为0,字段类型为整型,用户领取卡券后触发的事件推送中会带上此自定义场景值。
    * @return string ticket 可以通过https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET获取二维码
    * @return string expire_seconds 二维码的有效时间
    * @return string url 	二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片
    * @return string show_qrcode_url 二维码显示地址,点击后跳转二维码页面
    */
    public function create_card_qrcode($access_token, $card_id, $expire_seconds='', $openid='', $is_unique_code=false, $outer_id=0){
    	log_write('开始创建卡劵二维码');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/qrcode/create?access_token=" . $access_token;
    		$curldata = array(
    			'action_name' => 'QR_CARD',
    			'expire_seconds' => $expire_seconds,
    			'action_info' => array(
    				'card' => array(
    					'card_id' => $card_id,
    					'openid' => $openid,
    					'is_unique_code' => $is_unique_code,
    					'outer_id' => $outer_id
    				)
    			)
    			);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('创建卡劵二维码失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('创建卡劵二维码失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('创建卡劵二维码成功');
    				return array(
    					'ticket' => $tem_data['ticket'], 
    					'expire_seconds' => $tem_data['expire_seconds'], 
    					'url' => $tem_data['url'],
    					'show_qrcode_url' => $tem_data['show_qrcode_url']
    					);
    				
    			} else {
    				log_write('创建卡劵二维码失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 查询code
    * @param string $access_token
    * @param string $code 卡券code
    * @return string openid 	用户openid
    * @return string card 	卡劵信息
    */
    public function get_code_info($access_token, $code){
    	log_write('开始查询code');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/code/get?access_token=" . $access_token;
    		$curldata = array(
    			'code' => $code
    			);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('查询code失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('查询code失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('查询code成功');
    				return array(
    					'openid' => $tem_data['openid'], 
    					'card' => $tem_data['card']
    					);
    				
    			} else {
    				log_write('查询code失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    
    /**
    * 核销code
    * @param string $code 卡券code
    * @return string openid 	用户openid
    * @return string card 	卡劵信息
    */
    public function consume_code($access_token, $code){
    	log_write('开始核销code');
    
    	try {
    		$url = "https://qyapi.weixin.qq.com/cgi-bin/card/code/consume?access_token=" . $access_token;
    		$curldata = array(
    			'code' => $code
    			);
    		$data = g('http') -> curl($url, $curldata);
    		
    		$data['httpcode'] != 0 && log_write('核销code失败:重试 1') && $data = g('http') -> curl($url, $curldata);
    		$data['httpcode'] != 0 && log_write('核销code失败:重试 2') && $data = g('http') -> curl($url, $curldata);
    		
    		if ($data['httpcode'] == 0) {
    			$tem_data = json_decode($data['content'], true);
    			if($tem_data['errcode'] == 0 && $tem_data['errmsg'] == 'ok'){
    				log_write('核销code成功');
    				return array(
    					'openid' => $tem_data['openid'], 
    					'card' => $tem_data['card']
    					);
    				
    			} else {
    				log_write('核销code失败: ' . $card_id);
    				throw new SCException($tem_data['errmsg']);
    			}
    
    		} else {
    			throw new SCException($data['httpcode']);
    		}
    
    	} catch(SCException $e) {
    		throw new SCException($e);
    	}
    }
    

    /卡劵服务end************************/

  • 相关阅读:
    在VS2010下,用QT,创建一个Opencv应用程序
    SNR(信噪比)与 特定分布噪声的关系初探
    Qt学习笔记_FindDialog
    关于reduced rank regression的一些看法
    实时摄像头人眼跟踪: RealTime Tracking Of Human Eyes Using a Webcam
    L1_APG_Tracker实现代码剖析
    CVPR2013 感兴趣论文汇总
    使用PowerDesigner 15对现有数据库进行反向工程(图解教程)(转)
    大数据量高并发的数据库优化
    rtmp和rtsp的区别
  • 原文地址:https://www.cnblogs.com/phonecom/p/6360684.html
Copyright © 2011-2022 走看看