温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微信小程序中商城开发的示例分析

发布时间:2021-06-09 10:46:10 来源:亿速云 阅读:172 作者:小新 栏目:移动开发

这篇文章给大家分享的是有关微信小程序中商城开发的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

最近小程序特别火,所以我们公司也针对ecshop平台对接了小程序

包括完整的用户系统和购物体统

用户系统:收货地址,订单管理,消息管理,优惠券管理等等

购物系统支付购物车管理,微信支付等等

微信小程序中商城开发的示例分析

微信小程序中商城开发的示例分析

微信小程序中商城开发的示例分析

微信小程序中商城开发的示例分析

微信小程序中商城开发的示例分析

微信小程序中商城开发的示例分析

相信有很多小伙伴都用的是ecshop作为自己的商城,最近小程序又火了,于是就有人问ecshop对接小程序怎么做。

正好最近在开发一个对接ecshop的小程序项目,就将我的一些开发经验分享一下。

一:扫描小程序二维码后的用户信息的获取和缓存

获取用户信息需要用到两个api

wx.login(OBJECT)

调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。

wx.getUserInfo(OBJECT)

获取用户信息,需要先调用 wx.login 接口。

获取缓存需要用到的api

wx.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

下面就是具体实例代码:

我们可以将这段写在公共的app.js页面

//app.js  App({   onLaunch: function() {   },   getUserInfo: function (cb) {   var that = this   if (this.globalData.userInfo) {    typeof cb == "function" && cb(this.globalData.userInfo)   } else {    //调用登录接口    wx.login({    success: function (res) {     if (res.code) {     var userid = wx.getStorageSync('scuserid')     var sc_session_id = wx.getStorageSync('sc_session_id')     var openid = wx.getStorageSync('sc_session_id')     if(!userid){       wx.request({       url: 'xxxx/data.php?action=sendCode',       data: {        code: res.code,       },       success: function (res) {        //console.log(res)        var status = res.data.status        if(status == 1){         wx.showToast({         title: res.data.message,         icon: 'success',         duration: 2000         })        }else if(status == 2){         var scuserid = res.data.userid         if(scuserid > 0){          //缓存user_id          wx.setStorageSync('scuserid', scuserid)          wx.setStorageSync('openid', res.data.openid)          wx.setStorageSync('sc_session_id', res.data.session_id)         }        }else{         //缓存session_id         wx.setStorageSync('openid', res.data.openid)         wx.setStorageSync('sc_session_id', res.data.session_id)         //获取用户信息         wx.getUserInfo({         success: function (res) {          that.globalData.userInfo = res.userInfo          typeof cb == "function" && cb(that.globalData.userInfo)          //console.log(res);          wx.request({          url: 'xxxx/data.php?action=saveUserInfo',          data: {           userinfo: res.userInfo,           openid: wx.getStorageSync('openid'),          },          success: function (res) {           //console.log(res.data)           var status = res.data.status           if(status == 1){            wx.showToast({             title: res.data.message,             icon: 'success',             duration: 2000            })           }else{            var scuserid = res.data.userid            if(scuserid > 0){            //缓存user_id            wx.setStorageSync('scuserid', scuserid)            }           }          }          })         }         })        }       }       })     }     }    }    })   }   },   globalData: {   userInfo: null   }  })

二:获取微信用户的信息以及如何将用户信息缓存起来

要获取用户的地理信息则要用到

wx.getLocation(OBJECT)

获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用;当用户点击“显示在聊天顶部”时,此接口可继续调用。

具体实例代码:

//获取纬度,经度   wx.getLocation({    type: 'wgs84',    success: function (res) {    var latitude = res.latitude    var longitude = res.longitude    wx.request({     url: 'http://XXXXXX/data.php?action=get_dq',     data: {     latitude: latitude,     longitude: longitude     },     headers: {     'Content-Type': 'application/json'     },     success: function (res) {     //console.log(res.data)     var province = res.data.result.addressComponent.province     //console.log(province)     var city = res.data.result.addressComponent.city     var district = res.data.result.addressComponent.district     var diqu = province+city+district     //缓存当前所在地区     wx.setStorageSync('dq_diqu', diqu)     wx.setStorageSync('dq_district', district)     }    })    }   })  if($act=="get_dq"){   //获取当然城市   //http://api.map.baidu.com/geocoder/v2/?ak=327381a342077a8f3d584251b811cce5&callback=renderReverse&location=30.593099,114.305393&output=json   //纬度   $latitude = $_REQUEST['latitude'];   //经度   $longitude = $_REQUEST['longitude'];   $url = 'http://api.map.baidu.com/geocoder/v2/?ak=327381a342077a8f3d584251b811cce5&location='.$latitude.','.$longitude.'&output=json';   $result = file_get_contents($url);   exit($result);  }

感谢各位的阅读!关于“微信小程序中商城开发的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI