微信公众号第三方接口的调用

总结一下我在项目中使用微信第三方接口

1.准备工作,首先要引入微信的第三方开放接口的js文件

<script type="text/javascript" src="http://map.qq.com/api/js?v=2.exp"></script>
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

2.具体调用插件
分享插件的调用

wx.config({
debug :false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId : resp.repData.appid, // 必填,公众号的唯一标识
timestamp : resp.repData.timestamp, // 必填,生成签名的时间戳
nonceStr : resp.repData.nonce_str, // 必填,生成签名的随机串
signature : resp.repData.signature,// 必填,签名,见附录1
jsApiList : ['onMenuShareAppMessage','onMenuShareTimeline','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone','getLocation']// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

调用的时候要在wx.ready()中进行

wx.ready(function(){
 //分享给微信好友
     wx.onMenuShareAppMessage({
      title: '发现你生活里的美', // 分享标题
      desc: '我经过你的时候,你也经过这扇雨后的窗,我领会着你掠过月光与荫影的孤寂,我会和你一起浮动街角的风,在爱的苍穹下', // 分享描述
      link: '../bonus.html', // 分享链接
      imgUrl: '../img/add/tubiao.jpg', // 分享图标
      success: function (res) {},
      cancel: function () { }
    });
// 分享到朋友圈
    wx.onMenuShareTimeline({
      title: '发现你生活里的美', // 分享标题
      desc: '我经过你的时候,你也经过这扇雨后的窗,我领会着你掠过月光与荫影的孤寂,我会和你一起浮动街角的风,在爱的苍穹下', // 分享描述
      link: '../bonus.html', // 分享链接
      imgUrl: '../img/add/tubiao.jpg', // 分享图标
      success: function (res) {},
      cancel: function () { }                 
  });


// 同理分享到qq好友和qq空间
        wx.onMenuShareQQ({});
         wx.onMenuShareQZone({});
    })

3.微信获取地理位置

 wx.getLocation({
     type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
     success: function (res) {
        latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var speed = res.speed; // 速度,以米/每秒计
        var accuracy = res.accuracy; // 位置精度
        let geocoder = new qq.maps.Geocoder({
           complete: function (result) {
            alert('成功:'+result.detail.address);
            }
        })
       var coord = new qq.maps.LatLng(res.latitude, res.longitude);
            geocoder.getAddress(coord);
       },
                                    
        cancel: function (res) {
          alert('用户拒绝授权获取地理位置');
             }
       });

4.调用微信支付接口

if (typeof WeixinJSBridge == "undefined") {
        alert("请用微信浏览器打开");
        if (document.addEventListener) {
                document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
        } else if (document.attachEvent) {
            document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
            document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
        }
} else {                        
       onBridgeReady(appId,timeStamp,nonceStr,package,paySign);
   }
    
// 调用微信支付接口核心方法
   function onBridgeReady(appId,timeStamp,nonceStr,package,paySign) {
        WeixinJSBridge.invoke('getBrandWCPayRequest', {
            "appId":appId, //公众号名称,由商户传入
            "nonceStr":nonceStr, //随机串
            "package":package, //支付的一些信息
            "signType":"MD5", //微信签名方式:
            "timeStamp":timeStamp, //时间戳,自1970年以来的秒数
            "paySign":paySign //微信签名 
        }, function(res) {
            
            //使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
            if (res.err_msg == "get_brand_wcpay_request:ok") {
                console.log("返回成功");
            }else{
                alert("调起微信支付失败");
            }
        })
    }

以上是记录开发微信商城时候调用微信接口一些流程

posted @ 2020-05-05 23:44  热爱前端知识  阅读(1965)  评论(0编辑  收藏  举报