欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  微信小程序

微信小程序中用Python生成二维码的两种方式

程序员文章站 2022-03-31 09:49:56
...

本篇文章给大家带来的内容是关于微信小程序中用Python生成二维码的两种方式 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

微信小程序生成二维码:

所用语言python,有两种方式:

1: 后端传一段字符串给前端, 前端显示

2: 后端直接生成图片

1: 后端传一段字符串给前端, 前端显示

def get_wxCode(Request, UserInfo):
    try:
        scene = Request["scene"]
        access_token = get_wxCode_token()
        if not access_token:
            return False
        textmod = {"scene": scene, "page": "pages/index/main", "width": 430, "auto_color": True, "is_hyaline": False}
        textmod = json.dumps(textmod).encode(encoding='utf-8')
        header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
                       "Content-Type": "application/json"}
        url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_token
        req = request.Request(url=url, data=textmod, headers=header_dict)
        res = request.urlopen(req)
        res = res.read()
        b64str = base64.b64encode(res)
        return b64str
    except Exception as e:
        print(e)
        return False
var getWXcode2 = function(hostname){  //获取管理端小程序码

    //动态获取域名,若为本地环境,则默认携带参数为wx-test
    //示例:londex.i-plc.cn
    var hostname1 =  window.location.host;
    hostname1 = hostname1.split('.')[0];
    if(hostname1 == '127' || hostname1 == 'localhost'){
        hostname1 = hostname;
    }
    if(window.localStorage.getItem('wxcode2')){
        $('#wxcodeImg2').attr('src','data:image/png;base64,'+ window.localStorage.getItem('wxcode2'));
        $('#wxCodeModal2').modal('show');
        return;
    }
    var params = {
        "scene":hostname1,
    };
    $.ajax({
        type:'post',
        url:'/request?rname=i_plc.Page.wechat_api.wechat.get_wxCode',
        data:params,
        success:function (res) {
            console.log(res)

            if(res === false){
                $.MessageBox.notify('warn', '获取失败,请稍后再试!');
            }else{
                console.log(res)
                $('#wxcodeImg2').attr('src','data:image/png;base64,'+res);
                $('#wxCodeModal2').modal('show');
                window.localStorage.setItem('wxcode2',res)
            }

        }
    });
};

2: 后端直接生成图片

def get_wxCode(Request, UserInfo):
    """
        生成小程序二维码
    :param Request:
    :param UserInfo:
    :return:
    """
    result = {"success": False}
    try:
        # scene = Request["scene"]
        access_token = get_wxCode_token()
        if not access_token:
            raise Exception("access_token")
        compid = Request["compid"]
        sql = "select compIndex from company where operationFlag=9 and compID=%s" % compid
        Result = SqlRun(sql)
        if Result["Data"] and Result["Data"][0] and Result["Data"][0][0]:
            scene = Result["Data"][0][0]

            textmod = {"scene": scene, "page": "pages/index/main", "width": 430, "auto_color": True, "is_hyaline": False}
            textmod = json.dumps(textmod).encode(encoding='utf-8')
            header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
                           "Content-Type": "application/json"}
            url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_token
            req = request.Request(url=url, data=textmod, headers=header_dict)
            res = request.urlopen(req)
            res = res.read()
            b64str = base64.b64encode(res)
            imgdata=base64.b64decode(b64str)

            path = "static/tmpfiles/scan_%s.png" % file_name
            file = open(os.path.join(settings.BASE_DIR, path,), 'wb+')
            file.write(imgdata)
            file.close()

            result["code_url"] = path
            result["success"] = True
    except Exception as e:
        result["error_msg"] = str(e)
    return json.dumps(result)


def get_wxCode_token():
    try:
        textmod = {"grant_type": "client_credential",
            "appid": "wx44a452fb08b0a990",
            "secret": "9aedb0a274027bdd09612fbde3298129"
        }
        textmod = parse.urlencode(textmod)
        header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'}
        url = 'https://api.weixin.qq.com/cgi-bin/token'
        req = request.Request(url='%s%s%s' % (url, '?', textmod), headers=header_dict)
        res = request.urlopen(req)
        res = res.read().decode(encoding='utf-8')
        res = json.loads(res)
        access_token = res["access_token"]
        return access_token
    except Exception as e:
        print(e)
        return False

相关推荐:

微信小程序PHP生成带参数二维码

微信小程序用户点击按钮生成带参二维码的示例代码

以上就是微信小程序中用Python生成二维码的两种方式的详细内容,更多请关注其它相关文章!

相关标签: 微信小程序