python生成带参数二维码

#coding:utf8
import urllib2
import urllib
import json
import string
import random

class WebChat(object):

    def __init__(self, appid=None, secret=None, code=None):
        self.appid = appid
        self.secret = secret
        self.code = code

    def token_url(self):

        return "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s" 
               % (self.appid, self.secret)

    def get_access_token(self):

        access_token_url = self.token_url()
        f = urllib2.urlopen(access_token_url)
        json_string = f.read()
        return json.loads(json_string)['access_token']

    def get_ticket_url(self):

        access_token = self.get_access_token()
        url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=%s" %(access_token)
        return url

    def get_ticket(self):
    	body={
                "action_name": "QR_LIMIT_SCENE", 
                "action_info": {
                "product_id":'d442kdD',
                "scene": {
                        "scene_id": 1444
                        }
                                }
                }
        jsons = json.dumps(body)
        ticket_url = self.get_ticket_url()
        ret = urllib2.Request(ticket_url,jsons)
        result_string = urllib2.urlopen(ret).read()
        return json.loads(result_string)['ticket']

    def exchange_by_ticket(self):
        ticket = self.get_ticket()
        exchange_by_ticket_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=%s" % (ticket)
        return exchange_by_ticket_url

    def qrcode_name(self):
	    allw = string.letters+string.digits
	    r = []
	    for i in range(6):
	        r.append(random.choice(allw))
	    return ''.join(r) 

    def get_qrcode_by_url(self):
    	url = self.exchange_by_ticket()
    	ret = urllib2.urlopen(url).read()
    	name = self.qrcode_name()
    	with open(name+'.jpg','wb') as f:
    		f.write(ret)
    		
    	return 1

if __name__ =='__main__':
    web_chat = WebChat('XXXX','XXXX')
    result = web_chat.get_qrcode_by_url()
    print result

  

转载于:https://www.cnblogs.com/huangxiaohen/p/3858232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值