ajax:
//获取商品属性数据
function initGoodsAttr(){
  $.ajax({
      type: 'GET',
      url:"<?php echo WX_SITE_URL.'/wx_shop.php?act=goods&op=goods_info_json&id_type='.$output['id_type'].'&goods_id='.$output['goods_id'];?>",
      data:'',
      dataType: 'json',
      success: function(data){
        if (data.statusCode == '200') {
          goods = data.result;
          initAttrPage(openid);
          currentGoodsCount = 1;
        }
      },
      error: function(xhr, type){
          alert('商品属性获取失败!');
      }
  });
}
 
 
商城跳转:
 
 
 
 
 
微信执行请求的方法:
$appid = "";
$appsecret = "";
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$jsoninfo = json_decode($output, true);
$access_token = $jsoninfo["access_token"];
 
 
 
weiPHP中持久层的代码:
if (! empty ( $_REQUEST ['shop_id'] )) {
  $this->shop_id = I ( 'shop_id' );
  session ( 'wap_shop_id', $this->shop_id );
} else {
  $this->shop_id = session ( 'wap_shop_id' );
}
 
$map ['token'] = get_token ();
 
 
后台json的解析:
app提交:
$raw_str = $GLOBALS['HTTP_RAW_POST_DATA'];
$post = json_decode($raw_str);
$cate_id = intval($post->cate_id)>0 ? $post->cate_id : 0;//商品分类
 
Ajax提交:
(前)
var data = JSON.stringify(cart);
 
(后)
$str2 = file_get_contents("php://input");
$post = json_decode($str2);
$result = add_cart($post->member_id, $post->cart_all);
 
 
(前)
var data = {
    "mobile_phone": username
};
(后)
$mobile_phone = $_POST['mobile_phone'];
 
jquery操作html:
判断没有没有类:$(".product-subtract").hasClass("grey")
移除类:$(".product-subtract").removeClass("grey");
增加类:$(".product-subtract").addClass("grey");
内容获取:$(".attr-info").html(); 
内容赋值:$(".attr-info").html(color_value+","+ size_value); 
获取属性值:var dbg = the_size.attr("data_belong_goods");// 取出当前size所从属的商品id
修改属性值:$("#spec_image").attr("src",good.spec_image);
元素后追加内容:$('.row').after(goods);
元素前追加内容:$('.row').before(goods);
内部后追加内容:$('.row').append(goods);
内部前追加内容:$('.row').prepend(goods);
移除:$("#div1").remove();
隐藏:$("#div1").hide();
显示:$("#div1").show();
页面刷新:location.reload();
返回上一页并刷新:location.href = document.referrer
返回上一页不刷新:window.history.go(-1);
选择到多个元素后到遍历:
$(".attr").each(function (){}
获取父节点:
var thisPlus = $(this);
var thisGrid = thisPlus.closest('._grid');
 
js类型转换
count =Number(clothe.goods_storage);
str =String(clothe.goods_name);
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
 
js数组:
var  array = [];
array.push(temp_color);
 
空值判断:
 if (openid.length == 0)
 
js价格计算:
var test = '1.11';
var test2 = '1.01';
alert((Number(test)-Number(test2)).toFixed(2));
 
js页面跳转:
window.location.href='<?php echo WX_SITE_URL.'/wx_shop.php?act=member&op=loginPage'?>';
 
 
js  使用post请求跳转页面的方法(将参数封装到一个form内);
    $("#service").click(function () {
      var data = {
        "goods_id":"<?php echo $output['goods_info']['goods_commonid']; ?>",
        "isSingle":"0",
        "goods_price": $(".member-price").html()
      };
      standardPost("<?php echo WX_SITE_URL.'/wx_shop.php?act=goods&op=openim'?>", data);
    });
 
    function standardPost (url,args)
    {
      var body = $(document.body),
          form = $("<form method='post'></form>"),
          input;
      form.attr({"action":url});
      $.each(args,function(key,value){
          input = $("<input type='hidden'>");
          input.attr({"name":key});
          input.val(value);
          form.append(input);
      });
      form.appendTo(document.body);
      form.submit();
      document.body.removeChild(form[0]);
    }
 
    //使用form提交数据。 带array
      function standardPost (url,args){
        var body = $(document.body),
          form = $("<form method='post'></form>"),
          input;
        form.attr({"action":url});
        $.each(args,function(key,value){
          if (Object.prototype.toString.call(value) === '[object Array]') {
            for (var i = 0; i < value.length; i++) {
              var name = key+"[]";
              input = $("<input type='hidden'>");
              input.attr({"name":name});
              input.val(value[i]);
              form.append(input);
            }
          }else{
            input = $("<input type='hidden'>");
            input.attr({"name":key});
            input.val(value);
            form.append(input);
          }
         });
        form.appendTo(document.body);
        alert($("form").html());
        form.submit();
        document.body.removeChild(form[0]);
      }
 
 
 
 
 
php:
数组长度:count(array) 
数组增加:array_push($a,"blue","yellow");
字符串相等:
if (strcasecmp($output['goods_info']['return_price'], '0.00')==0)
或恒等式:
if ($output['goods_info']['return_price'] ==="0.00")
 
类型转换:
$foo = "1"; // $foo 是字符串类型 
$bar = intval($foo); // $bar 是整型 
 
分割字符串: 
$cart_id = explode(',', $_GET['cart_id']);
 
空值检查:
(!isset($mobile_phone) || empty($mobile_phone)
 
 
 
合成图片:
<?php
function mergerImg($imgs) {
 
        list($max_width, $max_height) = getimagesize($imgs['dst']);
        $dests = imagecreatetruecolor($max_width, $max_height);
 
        $dst_im = imagecreatefrompng($imgs['dst']);
 
        imagecopy($dests,$dst_im,0,0,0,0,$max_width,$max_height);
        imagedestroy($dst_im);
 
        $src_im = imagecreatefrompng($imgs['src']);
        $src_info = getimagesize($imgs['src']);
        imagecopy($dests,$src_im,0,$max_height/2,0,0,$src_info[0],$src_info[1]);
        imagedestroy($src_im);
 
        header("Content-type: image/jpeg");
        imagejpeg($dests);
}
 
$imgs = array(
        'dst' => 'http://www.*/*.png',
        'src' => 'http://www.*/*.png'
);
 
 
 <?php echo WX_TEMPLATES_URL;?>/

技术总结PHP+微信的更多相关文章

  1. 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)

    1.点评 对于IM系统来说,如何做到IM聊天消息离线差异拉取(差异拉取是为了节省流量).消息多端同步.消息顺序保证等,是典型的IM技术难点. 就像即时通讯网整理的以下IM开发干货系列一样: <I ...

  2. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...

  3. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  4. 技术博客——微信小程序UI的设计与美化

    技术博客--微信小程序UI的设计与美化 在alpha阶段的开发过后,我们的小程序也上线了.看到自己努力之后的成果大家都很开心,但对比已有的表情包小程序,我们的界面还有很大的提升空间,许多的界面都是各个 ...

  5. 技术博客--微信小程序canvas实现图片编辑

    技术博客--微信小程序canvas实现图片编辑 我们的这个小程序不仅仅是想给用户提供一个保存和查找的平台,还希望能给用户一个展示自己创意的舞台,因此我们实现了图片的编辑部分.我们对对图片的编辑集成了很 ...

  6. 技术博客——微信小程序的架构与原理

    技术博客--微信小程序的架构与原理 在两个月的微信小程序开发过程中,我曾走了不少弯路,也曾被很多现在看来十分可笑的问题所困扰.这些弯路与困扰,基本上都是由于当时对小程序的架构理解不够充分,对小程序的原 ...

  7. 微信跳转技术,浏览器唤起微信,weixin://dl/business/?ticket=

    weixin://dl/business/?ticket=  到底怎么生成的?调用以下接口 weixin://dl/scan 扫一扫weixin://dl/feedback 反馈weixin://dl ...

  8. 分享Azure DevOps技术,来微信群吧!

    现在QQ用户越来越少,基本上都转移到微信上了. 讨论问题,动不动就来一个微信群.下面这样几百人的微信群,专门讨论Azure DevOps (TFS)技术,你加入了么? 还等什么,扫描吧!

  9. 史上最全最强Charles截取手机https协议数据包教程(附上利用此技术制作最近微信比较火的头脑王者辅助外挂)!

    纯原创,思路也是本人花了半个小时整理出来的,整个完成花费了本人半天时间,由于不才刚大学毕业,所以有的编码方面可能不入大牛们的眼,敬请原谅!如有转载请附上本地址,谢谢! 最近微信朋友圈刚刚被跳一跳血洗, ...

随机推荐

  1. hdu 5265 技巧题 O(nlogn)求n个数中两数相加取模的最大值

    pog loves szh II Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  2. Django——20141014深入理解Django HttpRequest HttpResponse的类和实例

    深入理解Django HttpRequest HttpResponse的类和实例 了解META选项 了解中间件 理清所有模板传输模板变量的方式,并作出选择 Django模板系统:如何利用Django模 ...

  3. iOS编程 手动忽略clang编译器警告

    在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能运行之类的警告. 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuck 警告.! 首先学会主要的语句 #pra ...

  4. Centos 7 部署FTP服务简单版

    第三方教程推荐与参考: http://blog.csdn.net/somehow1002/article/details/70232791 先安装成功了,有信心了.再进一步扩展配置. 1.安装vsft ...

  5. 串行 RapidIO

    https://wenku.baidu.com/view/78666616cf84b9d528ea7ad9.html

  6. Sql常用语法总结

    SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRAN ...

  7. UVA 11014 - Make a Crystal(容斥原理)

    UVA 11014 - Make a Crystal 题目链接 题意:给定一个NxNxN的正方体,求出最多能选几个整数点.使得随意两点PQ不会使PQO共线. 思路:利用容斥原理,设f(k)为点(x, ...

  8. C语言基础(18)-内存

    一.内存布局 1.1 代码区 代码区code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段.代码区是可读不可写的. 代码区中的所有的内容在程序加载到内存的时候就确定了,运 ...

  9. OSX: bash的更新

    本文尽量详述眼下来说的bash补丁的进展,从以下4个方面解释: 最全最新的更新安装包,:Oct 5为止的 測试已知的bash漏洞的脚本:更新后能够用来检測已知bash漏洞的情况 脚本编译更新版本号:也 ...

  10. hibernate的helloworld实现

    首先要新建一个 web project,然后新建一个lib的文件夹并导入相应的jar包 hibernate开发步骤: 1.创建hibernate配置文件 2.创建持久化类 3.创建对象关系映射文件 如 ...