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. Digg工程师讲述Digg背后的技术

    虽然最近业绩有所下滑,也出现了一些技术故障,但Digg作为首屈一指的社会化新闻网站,其背后的技术还是值得一探,Digg工程师 Dave Beckett 在今年4月份写一篇名为<How Digg ...

  2. Spine U3D整合流程问题

    Spine U3D整合流程问题 What: 公司2d项目开发,动画外包的spine.本来在spine里面一切正常,但是导入u3d运行库的时候动画切换的时候原来的动画是好的,一旦切换了就乱帧了. 如下结 ...

  3. python——TypeError: 'str' does not support the buffer interface

    import socket import sys port=51423 host="localhost" data=b"x"*10485760 #在字符串前加 ...

  4. 响应式设计工具网站mydevice.io

    1.网址 https://mydevice.io/ 2.使用 在mydevice.io上有常见智能手机,PC电脑的尺寸.

  5. (二)Linux——Linux常用指令

    1. 文件目录操作命令 ls 显示文件和目录列表     -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 ...

  6. lucene 搜索优化,个人实战经验总结

    1.IndexSearch.IndexReader等都是线程安全的类,多线程并发使用是没有问题的.不到忘不得以,尽量避免重新实例化,他们实例化是很花费时间的,看一下他们的构造原理你就知道了.   2. ...

  7. HTML5特性

    HTML5规范围绕如何使用新增标记定义了大量Javascript API,其中一些API与DOM重叠,定义了浏览器应该支持DOM拓展. 1.与类相关的扩充 HTML5新增了getElementsByC ...

  8. Telerik UI for ASP.NET Core概要

    介绍:不介绍了,刚开始研究. 下载:CSDN或者51cto上都有最新的开发版 安装:默认的安装目录是C:\Program Files (x86)\Progress\Telerik UI for ASP ...

  9. webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc ((); 或者 Unexpected token: operator (>)

    webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc (();  或者 Unexpected token: operator (>) 解决方案 ...

  10. SVN Client API的.net 接口 SharpSvn介紹 Checkout操作实例

    Subversion是一個文件版本管理工具, 廣泛的被大家採用來作為源代碼版本管理. 已有的工具不管是其自帶的命令行工具還是Windows UI的tortoiseSVN等還是很方便實用的, 但是如果想 ...