失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 分享微信公众号实现会员卡领取的功能

分享微信公众号实现会员卡领取的功能

时间:2020-01-03 01:41:49

相关推荐

分享微信公众号实现会员卡领取的功能

微信小程序|微信开发

微信,公众号,会员卡

微信小程序-微信开发1、会员卡的领取也需要js-sdk接口(可以参考获取微信公众号获取用户的地理位置信息)(借鉴网址:/article/25.html)

web自定义表单源码,vscode空格彩色,ubuntu升级64位,黑体tomcat,删除sqlite数据,阿里云服务器 ,wordpress 图片裁剪插件,前端 react ui框架,java爬虫gecco,性吧有你春暖花开php,广州seo公司排行,收藏网站的html代码,手机网页翻页效果,时光轴相册模板预览,自定义的页面滚动条,metinfo企业网站管理系统模板,vb程序matlablzw

2、 比获取用户地理位置信息多了一个是需要单独获取签名包,签名方式也和获取用户地理位置的不同(这里再说一下获取签名包的方式)

php在线设计源码,ubuntu查看程序调用,爬虫 中间件,php bianjiq,校园seo排名lzw

获取js-sdk签名包:

asp注册登录源码,vscode连接服务器调试,ubuntu上装拼音,tomcat 注册成服务,Java限制爬虫,php https 证书,山西seo优化要多少钱,asp网站后台怎样找到验证码去除lzw

1、当前的url、时间戳、随机字符串、jsapiticket进行组合

//调用js-sdk的签名包 public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode.(获取当前网页的url) $protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER[SERVER_PORT] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //时间戳 $timestamp = time(); //随机字符串获取 $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url"; //生成字符串是用来签名用的 $signature = sha1($string); $signPackage = array( "appId" => $this->appid, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string ); return $signPackage; }

获取会员卡签名包:

//使用会员卡领取的签名包 public function getHuiYuanSignPackage() { $apiTicket = $this->getApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode.(获取当前网页的url) $protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER[SERVER_PORT] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //时间戳 $timestamp = time(); //随机字符串获取 // $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = $timestamp.$apiTicket."pVYA_t3RCVF_yhNcO6QCeAmb-1UI"; //生成字符串是用来签名用的 $signature = sha1($string); $signPackage = array( "timestamp" => $timestamp, "signature" => $signature, ); return $signPackage; }

详细代码说明:

HTML页面:

//引入微信js文件 //配置信息验证接口(填写的js-sdk获取的签名包的参数)wx.config({ debug: false, appId: \, timestamp: \, nonceStr: \, signature: \, jsApiList: [ // 所有要调用的 API 都要加到这个列表中 addCard ] });wx.ready(function(){ //添加卡券 document.querySelector(#addCard).onclick = function () {wx.addCard({cardList: [{ cardId: "",//微信公众号内创建的会员卡的id cardExt: {"timestamp":"","signature":""}//会员卡的签名包}],//成功之后的回调的函数(通过回调函数该表数据库是否领取会员卡的状态)success: function (res) {$.ajax({url: \__CONTROLLER__/editHuiYuan,type: post,dataType: json,data: {is_LingQu: 1,user_id:""},success:function(){$("#addCard").html("我的会员卡");}})}}); }; });

控制器中的代码:

类库:/article/115732.htm

public function index(){ $user_id = session(user_id); if($user_id){ $jssdk = new \Home\Model\WechatModel(); $signPackage = $jssdk->GetSignPackage();//获取js-sdk签名包 $huiyuanPackage = $jssdk->getHuiYuanSignPackage();获取会员卡签名包 //获取用户信息 $user = M(user)->where(array(user_id => $user_id))->find(); //产品收藏数量统计 $goods_count = M(goods_shoucang)->where(array(user_id => $user_id))->count(); //门店收藏数量统计 $shop_count = M(shop_shoucang)->where(array(user_id => $user_id))->count(); }else{ //判断该用户是否存在 $model = new \Home\Model\WechatModel(); $openid_accesstoken = $model->openId(); $rst = M(user)->where(array(user_openid => $openid_accesstoken[openid]))->find(); if($rst){ session(openid,$openid_accesstoken[openid]); session(user_id, $rst[user_id]); $jssdk = new \Home\Model\WechatModel(); $signPackage = $jssdk->GetSignPackage(); $huiyuanPackage = $jssdk->getHuiYuanSignPackage(); //获取用户信息 $user = M(user)->where(array(user_id => $rst[user_id]))->find(); //产品收藏数量统计 $goods_count = M(goods_shoucang)->where(array(user_id => $rst[user_id]))->count(); //门店收藏数量统计 $shop_count = M(shop_shoucang)->where(array(user_id => $rst[user_id]))->count(); }else{ $userInfo = $model->getOpenId($openid_accesstoken[openid],$openid_accesstoken[access_token]);$data = array(user_img => $userInfo[headimgurl],user_openid => $userInfo[openid],user_name => filter($userInfo[ ickname]),user_register_time => time(),city => $userInfo[province].-.$userInfo[city],); $id = M(user)->add($data); session(openid, $userInfo[openid]); session(user_id,$id); $jssdk = new \Home\Model\WechatModel(); $signPackage = $jssdk->GetSignPackage(); $huiyuanPackage = $jssdk->getHuiYuanSignPackage(); //获取用户信息 $user = M(user)->where(array(user_id => $id))->find(); //产品收藏数量统计 $goods_count = M(goods_shoucang)->where(array(user_id => $id))->count(); //门店收藏数量统计 $shop_count = M(shop_shoucang)->where(array(user_id => $id))->count(); } } $this->assign(signPackage, $signPackage); $this->assign(huiyuanPackage, $huiyuanPackage); $this->assign(user, $user); $this->assign(shop_count, $shop_count); $this->assign(goods_count, $goods_count); $this->display(); }

如果觉得《分享微信公众号实现会员卡领取的功能》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。