主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
本文主要介绍微信微信官方账号的会员卡领取功能的相关信息。有需要的朋友可以参考一下。
1.会员卡收藏也需要js-sdk接口(用户地理位置信息可以参考微信微信官方账号)(参考网址:http://gaoboy.com/article/25.html)
2.比获取用户地理位置信息多一点的是,需要单独获取签名包,签名方式与获取用户地理位置不同(下面介绍如何获取签名包)。
获取js-sdk签名包:
1.当前url、时间戳、随机字符串和jsapiticket组合在一起。
//调用js-sdk的签名包公共函数getsignpackage(){ $ jsapi ticket = $ this ->;getjsapi ticket();//注意,URL必须动态获取,不能硬编码。$ protocol =(!空($ _ SERVER[ # 39;HTTPS # 39;]) ; $ _服务器[ # 39;HTTPS # 39;] !== '关 # 39;| | $ _服务器[ # 39;服务器端口 # 39;] == 443) ?"https:// ;: http:// ;;$ url = $ protocol $ _ SERVER[HTTP _ HOST]$ _ SERVER[REQUEST _ URI] ;;//timest $ timest = time();//获取$ non centr = $ this ->:createnoncentr()的随机字符串;//这里参数的顺序要按照键值$ string = " jsapi _ ticket = $ jsapi ticket ;noncestr = $ nonceStr 时间戳= $时间戳 url = $ url ;//生成的字符串为$signature = sha1($string)进行签名;$ sign package = array( ;appId = gt$ this - gt;appid, 非中心 = gt$ nonceStr, 时间戳 = gt$timest, url = gt$url, 签名 = gt$signature, rawString = gt$ string);返回$ signPackage}
获取会员卡签名包:
//签名包公共函数gethuiyansignpackage(){ $ API ticket = $ this ->;getApiTicket();//注意,URL必须动态获取,不能硬编码。$ protocol =(!空($ _ SERVER[ # 39;HTTPS # 39;]) ; $ _服务器[ # 39;HTTPS # 39;] !== '关 # 39;| | $ _服务器[ # 39;服务器端口 # 39;] == 443) ?"https:// ;: http:// ;;$ url = $ protocol $ _ SERVER[HTTP _ HOST]$ _ SERVER[REQUEST _ URI] ;;//timest $ timest = time();//随机字符串获取//$ non centr = $ this ->;createnoncentr();//这里参数的顺序应该是键值$ string = $ timest的ASCII码升序排序。$ apiticket。" pVYA _ T3 rcvf _ yhnco 6 qce AMB -1UI ;;//生成的字符串为$signature = sha1($string)进行签名;$ sign package = array( ;时间戳 = gt$timest, 签名 = gt$signature,);返回$ signPackage}
详细代码描述:
HTML页面:
//介绍微信js文件< script src = http://res.wx.qq.com/open/js/jweixin-1.0.0.js&; gt; lt/script gt; lt脚本类型= text/JavaScript ; gt//配置信息验证接口(填充的js-sdk得到的签名包的参数)wx.config ({debug: false,appid: # 39; lt马鞭PHP echo $ sign package[ ;appId ];马鞭 gt',时间戳: # 39; lt马鞭PHP echo $ sign package[ ;时间戳 ];马鞭 gt',非中心: # 39; lt马鞭PHP echo $ sign package[ ;非中心 ];马鞭 gt',签名: # 39; lt马鞭PHP echo $ sign package[ ;签名 ];马鞭 gt',jsApiList: [//所有要调用的API都要添加到这个列表中 # 39;addCard # 39] });Wx.ready(function(){ //添加卡片凭证document . query selector( # 39;# addCard # 39).onclick = function(){ wx . add card({ card list:[{ cardId: ;&;、//在微信微信官方账号创建的会员卡的身份证ext: # 39;{ 时间戳 : lt马鞭PHP echo $ Huiyuan包[ # 39;时间戳 # 39;] ? gt&;, 签名 : lt马鞭PHP echo $ Huiyuan包[ # 39;签名 # 39;] ? gt&;}'//会员卡签名包}],//成功后回调的函数(本表数据库是否通过回调函数接收会员卡状态)成功:function (res) {$。Ajax({ URL: # 39;_ _ CONTROLLER _ _/edit Huiyuan # 39;,类型: # 39;邮政 # 39;,数据类型: # 39;json # 39,数据:{ is _ LingQu: # 39;1',用户标识: lt马鞭PHP echo $ user[ # 39;user _ id # 39] ? gt&;},success:function(){ $( ;# addCard ).html( ;我的会员卡”);} }) } });};}); lt/script gt;
控制器中的代码:
类库:http://www.jb51.net/article/115732.htm
public function index(){ $ user _ id = session( # 39;user _ id # 39);if($ user _ id){ $ jssdk = new \ Home \ Model \ we chat Model();$ sign package = $ jssdk - gt;GetSignPackage();//获取js-sdk签名包$ Huiyuan package = $ jssdk ->;getHuiYuanSignPackage();获取会员卡签名包//获取用户信息$ user = M( # 39;用户 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ user _ id))- gt;find();//产品收藏数量统计$ goods _ count = M( # 39;商品_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ user _ id))- gt;count();//店铺收藏数量统计$ shop _ count = M( # 39;店铺_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ user _ id))- gt;count();}else{ //判断用户是否有$ model = new \ home \ model \ we chat model();$ OpenID _ access token = $ model - gt;openId();$ rst = M( # 39;用户 # 39;)->;其中(数组( # 39;user _ openid # 39= gt$ OpenID _ access token[ # 39;openid # 39]))- gt;find();if($ rst){ session( # 39;openid # 39,$ OpenID _ access token[ # 39;openid # 39]);会话( # 39;user _ id # 39,$ rst[ # 39;user _ id # 39]);$ jssdk = new \ Home \ Model \ we chat Model();$ sign package = $ jssdk - gt;GetSignPackage();$ Huiyuan package = $ jssdk - gt;getHuiYuanSignPackage();//获取用户信息$ user = M( # 39;用户 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ rst[ # 39;user _ id # 39]))- gt;find();//产品收藏数量统计$ goods _ count = M( # 39;商品_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ rst[ # 39;user _ id # 39]))- gt;count();//店铺收藏数量统计$ shop _ count = M( # 39;店铺_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ rst[ # 39;user _ id # 39]))- gt;count();} else { $ userInfo = $ model - gt;get OpenID($OpenID _ access token[ # 39;openid # 39],$ OpenID _ access token[ # 39;访问令牌 # 39;]);$ data = array( # 39;user _ img # 39= gt$ userInfo[ # 39;headimgurl # 39], 'user _ openid # 39= gt$ userInfo[ # 39;openid # 39], '用户名 # 39;= gt过滤器($ userInfo[ # 39;昵称 # 39;]), 'user _ register _ time # 39= gt时间(), # 39;城市 # 39;= gt$ userInfo[ # 39;省 # 39;].'-'。$ userInfo[ # 39;城市 # 39;], );$ id = M( # 39;用户 # 39;)->;add($data);会话( # 39;openid # 39,$ userInfo[ # 39;openid # 39]);会话( # 39;user _ id # 39,$ id);$ jssdk = new \ Home \ Model \ we chat Model();$ sign package = $ jssdk - gt;GetSignPackage();$ Huiyuan package = $ jssdk - gt;getHuiYuanSignPackage();//获取用户信息$ user = M( # 39;用户 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ id))- gt;find();//产品收藏数量统计$ goods _ count = M( # 39;商品_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ id))- gt;count();//店铺收藏数量统计$ shop _ count = M( # 39;店铺_收藏 # 39;)->;其中(数组( # 39;user _ id # 39= gt$ id))- gt;count();} } $this->分配( # 39;signPackage # 39,$ sign package);$ this - gt;分配( # 39;汇源套餐 # 39;,$汇源套餐);$ this - gt;分配( # 39;用户 # 39;,$ user);$ this - gt;分配( # 39;shop _ count # 39,$ shop _ count);$ this - gt;分配( # 39;商品_计数 # 39;,$ goods _ count);$ this - gt;显示();}以上是分享微信微信官方账号领取会员卡功能的详细内容。更多请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:分享微信微信官方账号的功能,实现会员卡领取。 https://zhujicankao.com/81853.html
评论前必须登录!
注册