WeMall-Android

包含SMSSDK/WeMall-Client/social_sdk_library_project三个项目以及Api目录下的client.php/update.xml接口文件,其中WeMall-Client依赖于项目SMSSDK、social_sdk_library_project

使用指南:本客户端是WeMall开源微信商城的Android版,首先需要您部署WeMall微信商城才能使用,使用方法如下

一:安装wemall微信商城篇
(1):将WeMall-Server项目(WeMall开源商城)安装到您的Web服务器,测试环境这里推荐使用wamp环境,快捷部署
(2):wemall微信商城安装完毕后将Api目录下的client.php和update.xml接口文件复制到WeMall开源商城Web服务器的Api目录下
二:导入客户端代码并编译生成自己的版本篇
(1):将SMSSDK/social_sdk_library_project项目导入到你的IDE(Eclipse或者Android Studio)
(2):将WeMall-Client项目导入到你的IDE,然后需要可能会报错,这里重新配置项目依赖,依赖于SMSSDK/social_sdk_library_project
(3):修改WeMall-Client项目源码中的Myconfig.java,将服务端地址设置为你们的WeMall微信商城地址
(4):配置完毕后即可测试运行wemall安卓客户端了
(5):当客户端编译新的版本时,将apk上传到服务器后配置Api/update.xml文件即可,当用户检测新版本时,即可收到新的版本提示信息
注1:本客户端兼容Wemall微信商城3.x版本,只要WeMall商城安装正常,Api目录下的文件上传到服务器指定地址,客户端即可正常访问
注2:直接下载客户端源代码打包也可运行客户端,默认接入我的演示服务端
注3:第一次分享项目,第一次写Android应用,技术不精,说的不明白的可联系QQ793554262,闲暇时间可以交流咨询
附加信息

演示服务端地址www.uaide.net/wemall/

测试管理员admin密码admin,请不要随意删除服务器已存在数据


client.php
<?php
///////////////////////////////////////////////
/**********************************************
WeMall客户端Api,刘德位编写
Bug反馈QQ:793554262
**********************************************/
///////////////////////////////////////////////
header("Content-type:text/html;charset=utf-8");
global $_SERVER;
$agent = $_SERVER['HTTP_USER_AGENT'];
if($agent!="WeMall_Client"){
	echo "非法请求";
	exit();
}
?>
<?php
//sql注入过滤-by360
function customError($errno, $errstr, $errfile, $errline)
{
 echo "Error number:[$errno],error on line $errline in $errfile";
 die();
}
set_error_handler("customError",E_ERROR);
$getfilter="'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
$postfilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
$cookiefilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){  

if(is_array($StrFiltValue))
{
    $StrFiltValue=implode($StrFiltValue);
}
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){
        print "非法请求";
        exit();
}
}  

foreach($_GET as $key=>$value){
	StopAttack($key,$value,$getfilter);
}
foreach($_POST as $key=>$value){
	StopAttack($key,$value,$postfilter);
}
foreach($_COOKIE as $key=>$value){
	StopAttack($key,$value,$cookiefilter);
}

?>
<?php include('../Public/Conf/config.php');?>
<?php
	$tag=$_GET['tag'];
if(!isset($_GET['tag'])){
	echo "非法请求";
	}
else{
	switch ($tag) {
		case 'wemall_query_myorder':
			wemall_query_myorder();
			break;
		case 'wemall_update_myadder':
			wemall_update_myadder();
			break;
		case 'wemall_query_goods':
			wemall_query_goods();
			break;
		case 'wemall_add_order':
			wemall_add_order();
			break;
		case 'wemall_update_passwd':
			wemall_update_passwd();
			break;
		case 'wemall_update_head':
			wemall_update_head();
			break;
		case 'wemall_login_check':
			wemall_login_check();
			break;
		case 'wemall_rec_passwd':
			wemall_rec_passwd();
			break;
		case 'wemall_user_regist':
			wemall_user_regist();
			break;
		case 'wemall_query_menu':
			wemall_query_menu();
			break;
		default:
			echo "非法请求";
			break;
	}
}
?>
<?php
//订单查询@@@
function wemall_query_myorder(){
	$uid=$_POST['uid'];//uid
	echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
	echo "<root>\n";
	if (isset($_POST['uid'])){
		$result = @mysql_query("select * from ".DB_PREFIX."order where user_id=(select id from ".DB_PREFIX."user where uid='$uid') order by time desc") or die("错误,请重试");
		while ($row=mysql_fetch_array($result)) {
				echo "<orders id=\"".$row[id]."\">"."<orderid>".$row[orderid]."</orderid>"."<totalprice>".$row[totalprice]."</totalprice>"."<pay_style>".$row[pay_style]."</pay_style>"."<pay_status>".$row[pay_status]."</pay_status>"."<note>".$row[note]."</note>"."<order_status>".$row[order_states]."</order_status>"."<time>".$row[time]."</time>"."<cartdata>".$row[cartdata]."</cartdata></orders>\n";
			}
		}
	echo "</root>";
}
//更新用户收货地址
function wemall_update_myadder(){
	$uid=$_POST['uid'];
	$address=base64_decode($_POST['address']);
	if (isset($_POST['uid'])&&isset($_POST['address'])){
		$result =@mysql_query("select uid from ".DB_PREFIX."user where uid='$uid' limit 1") or die("");
		if (mysql_num_rows($result)==0){
				echo "0";
		}
		elseif (mysql_num_rows($result)==1){
				@mysql_query("update ".DB_PREFIX."user set address='$address' where uid='$uid'") or die("");
				echo "1";
		}
	}
	else{
		echo "非法请求";
	}
}
//查询商品
function wemall_query_goods(){
	$preg = "/<\/?[^>]+>/i";//正则表达式,剔除详情里的html标签
	$type=$_POST['type'];//分类标志
	if (isset($_POST['type'])){
		$sql = "select * from ".DB_PREFIX."good where menu_id='$type' and status=1";
	}
	else{
		$sql = "select * from ".DB_PREFIX."good where status=1";
	}
	$result = mysql_query($sql);
	echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
	echo "<items>\n";
	while ($row=mysql_fetch_array($result)) {
		echo "<item id=\"$row[id]\">"."<typeid>".$row[menu_id]."</typeid>"."<name>".$row[name]."</name>"."<image>".$row[image]."</image>"."<intro>".str_replace('	','',preg_replace($preg,'',$row[detail]))."</intro>"."<price>".$row[price]."</price>"."<priceno>".$row[old_price]."</priceno>"."</item>\n";
		}
	echo "</items>";
}
//增加订单
function wemall_add_order(){
	$uid=$_POST['uid'];
	$totalprice=$_POST['totalprice'];
	$paystyle=$_POST['paystyle'];
	$paystatus=$_POST['paystatus'];
	$note=$_POST['note'];
	$cartdata =$_POST['cartdata'];
	$orderid=date("YmdHis").get_millisecond();
	$userid=null;
	//获取userid
	$sql = "select id from ".DB_PREFIX."user where uid='$uid'";
	$result = mysql_query($sql);
	while ($row=mysql_fetch_array($result)) {
		$userid=$row['id'];
	}
	//校验并插入订单
	if(isset($_POST['uid'])){
	$sql = "insert into ".DB_PREFIX."order (id,user_id,orderid,totalprice,pay_style,pay_status,note,order_status,time,cartdata) values(NULL,'$userid','$orderid','$totalprice','$paystyle','$paystatus','$note',0,CURRENT_TIMESTAMP,'$cartdata')";
	mysql_query($sql);
	echo $sql;
	}
	else{
		echo "非法请求";
	}
}
//设置密码
function wemall_update_passwd(){
	$uid=$_POST['uid'];
	$oldusersubmit=md5($_POST['old']);
	$new=md5($_POST['new']);
	if (isset($_POST['uid'])&&isset($_POST['old'])&&isset($_POST['new'])){
	$result =@ mysql_query("select password from ".DB_PREFIX."user where uid='$uid' limit 1") or die("");
	while ($row=@mysql_fetch_array($result)) {

				if($row['password']!=$oldusersubmit){
					echo "0";
				}
				else if($row['password']==$oldusersubmit){
					$result=@mysql_query("update ".DB_PREFIX."user set password='$new' where uid='$uid' limit 1") or die("");
					echo "1";
				}
	}
	}
	else{
		echo "非法请求";
	}
}
//更新头像
function wemall_update_head(){
	if(isset($_POST['photo'])&&isset($_POST['uid'])){
	$file =fopen('./uploads/'.(md5($_POST['uid'])).'.jpg', "w");
	fwrite($file,base64_decode($_POST['photo']));
	fclose($file);
	}
	else{
	echo "非法请求";
	}
}
function wemall_login_check(){
	$account=$_POST['account'];//帐号
	$passwd=md5($_POST['passwd']);//密码
	if (isset($_POST['account'])){
	$result = @mysql_query("select * from ".DB_PREFIX."user where phone='$account' limit 1") or die("错误,请重试");
	if (mysql_num_rows($result)==0){
					echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
					echo "<root>\n";
					echo "<result state=\"-1\"><uid></uid><name></name><phone></phone><address></address></result>\n";
					echo "</root>";
	}
	else{
			while ($row=mysql_fetch_array($result)) {
				if($row['password']==$passwd){
					echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
					echo "<root>\n";
					echo "<result state=\"1\">"."<uid>".$row[uid]."</uid>"."<name>".$row[username]."</name>"."<phone>".$row[phone]."</phone>"."<address>".$row[address]."</address></result>\n";
					echo "</root>";
				}
				else{
					echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
					echo "<root>\n";
					echo "<result state=\"0\"><uid></uid><name></name><phone></phone><address></address></result>\n";
					echo "</root>";
				}
			}
		}
	}
}
//恢复密码
function wemall_rec_passwd(){
	$phone=$_POST['phone'];
	$new=md5($_POST['new']);
	if (isset($_POST['phone'])&&isset($_POST['new'])){
	$result =@mysql_query("select phone from ".DB_PREFIX."user where phone='$phone' limit 1") or die("");
	if (mysql_num_rows($result)==0){
					echo "0";
	}
	elseif(mysql_num_rows($result)==1){
					$result=@mysql_query("update ".DB_PREFIX."user set password='$new' where phone='$phone' limit 1") or die("");
					echo "1";
	}
	}
	else{
		echo "非法请求";
	}
}
//注册用户
function wemall_user_regist(){
	$phone=$_POST['phone'];
	$name=base64_decode($_POST['name']);
	$saltuid=getRandStr($length=10);
	$uid=md5($_POST['phone'].$saltuid); //给用户构造一个唯一的UID,这里我们使用手机号加10位随机字符串的md5作为生成方案
	$passwd=md5($_POST['passwd']);
	if (isset($_POST['phone'])&&isset($_POST['name'])&&isset($_POST['passwd'])){
	$result =@ mysql_query("select uid from ".DB_PREFIX."user where phone='$phone'") or die("");
	if (mysql_num_rows($result)>0){
							echo "0";
	}
	elseif (mysql_num_rows($result)==0){
					$result=@mysql_query("insert into ".DB_PREFIX."user(uid,username,password,phone) values('$uid','$name','$passwd','$phone')") or die("");
					echo "1";
	}
	}
	else{
		echo "非法请求";
	}
}
//查询分组
function wemall_query_menu(){
	$sql = "select * from ".DB_PREFIX."menu order by id asc";
	$result = mysql_query($sql);
	echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
	echo "<types>\n";
	while ($row=mysql_fetch_array($result)) {
		echo "<type id=\"$row[id]\">"."<name>".$row[name]."</name></type>\n";
					}
	echo "</types>";
}
/////////////////////////////////////////世界你好////////////////////////////////////////
function getRandStr($length) {
	$str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	$randString ='';
	$len = strlen($str)-1;
	for($i = 0;$i < $length;$i ++){
		$num = mt_rand(0, $len);
		$randString .= $str[$num];
		 }
		return $randString ;
}
function get_millisecond(){
	list($usec, $sec) = explode(" ", microtime());
	$msec=round($usec*1000);
	return $msec;
	}
?>

代码详情

页面显示:http://www.koahub.com/home/product/55

码云代码:http://git.oschina.net/zzunet/wemall-doraemon

WeMall的Android app商城中的wemall doraemon代码的更多相关文章

  1. WeMall商城系统的Android app商城中的wemall-mobile代码

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改. [适合研究学习,支持wemall3.x版本] 1.快 ...

  2. wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法

    wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法,可用于其他商城或者系统的编程参考 package cn.zzu.edu.wemall.utils ...

  3. Android App性能评测分析-流畅度篇

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  4. Android APP性能测试笔记(一)

    Android APP性能测试笔记(一) (1)工具使用   Android Studio  GT, root的真机 (2)记录apk大小(对比竞品)   使用Android Studio导入需要测试 ...

  5. Android App 注射&&Drozer Use

    x01 准备工作 测试环境: 1) 手机root权限 2) Adb.exe 3) 手机usb连接开启debug模式(在设置>关于手机>连续点击多次版本号,即可开启开发者模式) 4) Win ...

  6. 单页Html及Android App供小孩学习常用汉字

    为了检验及帮助小孩学习常用汉字,简单开发本网页应用: 常用汉字是按使用频率排序的,来源于网上: 该简单应用 有Android APP下载 “学习常用汉字_20150910.apk” 单页Html 示例 ...

  7. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  8. Livecoding.tv 现正举行iOS及Android App设计比赛

    近日,Livecoding.tv, 一个为世界各地的程序员提供在线实时交流的平台,在其网站上发布了一篇通知, 宣布从4月15日至5月15日,会为iOS和Android的开发者举办一场本地移动app设计 ...

  9. Android APP 简单高效的禁用横竖屏切换

    默认情况下,Android APP的界面会随着手机方向的改变而改变,当手机处于竖屏状态,APP的界面也处于竖屏状态,而当手机处于横屏状态,APP也会自动切换到横屏状态.一般情况下APP的界面都是为竖屏 ...

随机推荐

  1. jQuery事件绑定、解绑、命名空间

    jQuery事件绑定.解绑.命名空间 <%@ page language="java" import="java.util.*" pageEncoding ...

  2. aix下java程序运行问题

    CLASSPATH=/track.jar:/standalone.jar export CLASSPATH nohup /usr/java6_64/bin/java com.TrackMain > ...

  3. JS-鼠标滚轮事件 和 阻止默认行为

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. [TPYBoard-Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板  一块 2.DS3231 ...

  5. Ubuntu下java环境的搭建

    喜欢捣鼓计算机相关的,然后大二的时候就想着用linux,于是当时就装了个ubuntu,还想着把java环境搭建进去,但当时由于"意志不坚定"后来就没用linux了,知道最近突然想在 ...

  6. ubuntu下配置Apache

    ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...

  7. C#操作XML方式

    前言 前一篇XML读取,现在咱们继续XML操作相关 C#中也有三种操作(增.删.改.查)XML文件方法如下: 使用 XmlDocument(DOM模式) 使用 XmlTextWriter(流模式) 使 ...

  8. 矩阵求逆的几种方法总结(C++)

    矩阵求逆运算有多种算法: 伴随矩阵的思想,分别算出其伴随矩阵和行列式,再算出逆矩阵: LU分解法(若选主元即为LUP分解法: Ax = b ==> PAx = Pb ==>LUx = Pb ...

  9. Javascript 异步实现机制

    Javascript 单线程指的是在一个浏览器进程中只存在一个 Javascript 执行线程,所以任务需要顺序排列等待执行,而不能像 Java 等多线程语言一样并发执行.但是这种单线程模型在处理耗时 ...

  10. Monkey实例测试

    三.Monkey实例测试 Windows下(注:2-4步是为了查看我们可以测试哪些应用程序包,可省略): 1. 通过eclipse启动一个Android的emulator或者2 2. 在命令行中输入: ...