python-qrcode-二维码
2021-05-01 07:28
标签:组织 pen hashlib trade lan dig ant try 案例 python-qrcode-二维码 标签:组织 pen hashlib trade lan dig ant try 案例 原文地址:https://www.cnblogs.com/yblackd/p/13221061.html1.qrcode 生成
def qrcode_gen(version=1, box_size=10, border=4, words=None, save_name=None):
"""
将参数words生成文件名为save_name的二维码
:param version: 值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。
:param box_size: 控制二维码中每个小格子包含的像素数。
:param border: 控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)
:param words: 生成二维码的内容
:param save_name: 生成二维码后的文件名
error_correction:控制纠错水平,范围是ERROR_CORRECT_L (L、M、Q、H),从左到右依次升高
"""
qr = qrcode.QRCode(
version=version,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=box_size,
border=border,
)
try:
words = "https://www.12dms.com" if words is None else words
save_name = "../static/img/" + "qrcode_" + str(time.ctime()) + ".png" if save_name is None else save_name
print(">>二维码图片名称:{}".format(save_name)) # save_name:二维码保存路径 + 图片名称
qr.add_data(words)
qr.make()
img = qr.make_image()
img.save(save_name)
except Exception as e:
raise ManagerParamsError("103")
2.微信支付code_url 获取 生成二维码
class WxPayManager(object):
APP_ID = WX_APP_ID
MCH_ID = WX_MCH_ID
CREATE_IP = WX_CREATE_IP
NOTIFY_URL = WX_NOTIFY_URL
API_KEY = WX_API_KEY
UFDODER_URL = WX_UFDODER_URL
def __init__(self):
pass
@staticmethod
def get_sign(data_dict, key):
"""
签名函数
:param data_dict: 需要签名的参数,格式为字典
:param key: 密钥 ,即上面的API_KEY
:return: 字符串
"""
params_list = sorted(data_dict.items(), key=lambda e: e[0], reverse=False) # 参数字典倒排序为列表
params_str = "&".join(u"{}={}".format(k, v) for k, v in params_list) + ‘&key=‘ + key
# 组织参数字符串并在末尾添加商户交易密钥
md5 = hashlib.md5() # 使用MD5加密模式
md5.update(params_str.encode(‘utf-8‘)) # 将参数字符串传入
sign = md5.hexdigest().upper() # 完成加密并转为大写
return sign
@staticmethod
def order_num(mobile):
"""
生成扫码付款订单号
:param phone: 手机号
:return:
"""
local_time = time.strftime(‘%Y%m%d%H%M%S‘, time.localtime(time.time()))
result = mobile + ‘T‘ + local_time + WxPayManager.random_str(5)
return result
@staticmethod
def random_str(randomlength=8):
"""
生成随机字符串
:param randomlength: 字符串长度
:return:
"""
strs = ‘‘
chars = ‘AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789‘
length = len(chars) - 1
random = Random()
for i in range(randomlength):
strs += chars[random.randint(0, length)]
return strs
@staticmethod
def trans_dict_to_xml(data_dict):
"""
定义字典转XML的函数
:param data_dict:
:return:
"""
data_xml = []
for k in sorted(data_dict.keys()): # 遍历字典排序后的key
v = data_dict.get(k) # 取出字典中key对应的value
if k == ‘detail‘ and not v.startswith(‘‘.format(v)
data_xml.append(‘{value}{key}>‘.format(key=k, value=v))
return ‘
3.资料-qrcode-具体案例(简单生成, 自定义图标,更改颜色)
Python学习笔记8-利用qrcode模块生成普通二维码和带图标的二维码: https://blog.csdn.net/weixin_42703239/article/details/104349417