nodejs微信开发--调用微信JS SDK

首先要在后台获取的JSconfig传到页面

页面传递数据用ajax

后台nodejs代码:

var config = require('./config');
var API = require('wechat-api');
var express = require('express');
var bodyParser = require('body-parser');
var api = new API(config.appid,config.appsecret)
var app = module.exports = express.createServer();

//使用中间件body-parser获取post参数
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.use(function (req, res, next) {
        //使用wechat-api获取JSconfig
        var param = {
                debug: false,
                jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'],
                url: req.body.url
        };
        /*api.getTicket(function(err,result){
                console.log(err);
                console.log(result);
        });*/
        api.getJsConfig(param, function(err,result){
                res.send(result);
        });
})

app.listen(1338,function(){
    console.log('port 1338 is running!');
});
~         

前台页面代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>微信测试页面</title>
    <script src="http://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script>
        $(function(){
            //获取jsconfig
            var param_get_js_config = {'cmd':'get_js_config','url':'http://xl.caiqr.com/test.html'};
            hander_data_from_wechat_api(param_get_js_config,hander_js_config);

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

                // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
                wx.checkJsApi({
                    jsApiList: ['onMenuShareTimeline'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
                    success: function(res) {
                        alert(JSON.stringify(res));
                        // 以键值对的形式返回,可用的api值true,不可用为false
                        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                    }
                });
                wx.onMenuShareTimeline({
                    title: '分享的标题', // 分享标题
                    link: 'www.baidu.com', // 分享链接
                    imgUrl: '', // 分享图标
                    success: function (res) {
                        alert('share success');
                        // 用户确认分享后执行的回调函数
                    },
                    cancel: function (res) {
                        alert('share fail')
                        // 用户取消分享后执行的回调函数
                    }
                });
            });
            wx.error(function(res){
                alert(JSON.stringify(res));
                // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

            });
        }
        //传递参数请求wechat_api数据,请求成功后的回调函数fn处理得到的数据
        function hander_data_from_wechat_api(param,fn) {
            console.info(param);
            //发送请求获取wx_js_config
            $.ajax({
                url: 'http://xl.caiqr.com/wechat',
                type: 'POST',
                data: param,
                datatype: 'json',
                success: function (data) {
                    fn(data);
                }
            })
        }

    </script>
</head>
<body>

</body>
</html>

分享的时候可以设置分享标题拿到分享成功还是失败的状态就成功了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左钦杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值