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
<span style="font-weight: normal;"><?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'];//uidecho "<?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;        }
?></span>

代码详情

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

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

WeMall的Android app商城中的wemall doraemon代码相关推荐

  1. Android APP如何防止二次打包

    摘要 "Android APP二次打包"则是盗版正规Android APP,破解后植入恶意代码重新打包.不管从性能.用户体验.外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕 ...

  2. android 混淆移除log,关于安卓代码混淆和Release版本中去除Debug信息

    我也不知道今天哪门子的心思看到这方面去了,这其实也就是一些固定东西的使用.怎么说呢,因为有些坑以前忽略了,今天记起来的就干掉吧. 以前优化apk的时候,网上查下来,基本上就是去掉无用的资源buildT ...

  3. android 移除泛型中元素_Android 代码混淆 混淆方案

    欢迎关注专栏:里面定期分享Android和Flutter架构技术知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿. Flutter跨平台开发终极之选​zhua ...

  4. 5G 时代的 Android App 开发入门与项目实战

    随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑.智能电视.车载大屏.智能家居.智能手表等诸多设备,Android开发依然是前景可期的IT岗位. 当然,整个社会正在迈向5G时代 ...

  5. android内存占用分析,Android App性能评测分析-内存篇

    1.内存了解 在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人头疼的一部分,需要对内存基础知识.内存分配.内存管理机制等非常熟悉,才能排查问题. 1 ...

  6. android开发入门与实践_我的新书《Android App开发入门与实战》已经出版

    前言 工作之余喜欢在CSDN平台上写一些技术文章,算下时间也有两三年了.写文章的目的一方面是自己对技术的总结,另一方面也是将平时遇到的问题和解决方案与大家分享,还有就是在这个平台上能和大家共同交流. ...

  7. Android App性能流畅度测评分析可以用到工具

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

  8. android电商平台,基于Android的电商平台通用客户端的设计与实现

    摘要: 随着移动互联网的高速发展,电子商务已经由过去的PC端逐渐进入了移动时代.一方面,对于处于创业阶段的电商平台运营者来说,由于资金不足,开发人员不足,很难在短时间内拥有电商平台的手机客户端.另一方 ...

  9. Android App支付系列(一):微信支付接入详细指南(附官方支付demo)

    写在前面 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统显然是不明智的,国内已经有多家成熟的移动支付提供商,腾讯就是其中之一.梳理了下微信支付的接入,今天给大家分享下腾讯旗下的 ...

最新文章

  1. 淘宝和QQ空间顶部工具栏三角形箭头的实现方式
  2. Google在中国打败百度的方法其实很简单.只要需改变5点.
  3. 办公室,手机上网不用愁
  4. keras系列︱迁移学习:利用InceptionV3进行fine-tuning及预测、完美案例(五)
  5. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
  6. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  7. For each...in / For...in / For...of 的解释与例子
  8. 深入理解JavaScript系列:This? Yes,this!
  9. mac电脑本地运行MapReduce, Permission denied
  10. 不到一秒卖出一部!荣耀9X系列国内销售29天破300万台
  11. Java学习总结(随笔)——利用JSON解析实现网络下载
  12. pytorch冻结模型
  13. CF984A Game
  14. 微信【PC电脑版】消息提示音怎么还原
  15. steam加速_《盗贼之海》发行之初荣登Steam榜首,UU加速器为您开黑提供保障
  16. 使用SQLite打开本地.db文件
  17. 3*3 三行三列的圈叉棋
  18. 当你在浏览器地址栏中输入地址并回车的一瞬间到页面展示回来,经历了什么?
  19. https双向加密认证
  20. 【JS】前端base64转图片File对象

热门文章

  1. 梦幻服务器最新开服时间,梦幻西游新服开服时间表2021是什么_2021新服开服时间表介绍...
  2. html 长度vm,vm与html
  3. a320起落架catia_A320结构及起落架考题
  4. 老板下了死命令,要上微服务!
  5. 打开cmd命令行的常用方法总结
  6. 长沙计算机学校力择华瑞教育,华瑞IT教育|传递教育正能量,用心铸就值得信赖的教育品牌...
  7. ABAP选择结构自己做的练习题
  8. 雷蛇linux识别,鼠标底部 真假狂蛇一眼即辨_Razer 地狱狂蛇鼠标_键鼠评测-中关村在线...
  9. 在线培训网校系统,解决了课程的计时消课问题
  10. Python基础 lambda表达式