精华内容
下载资源
问答
  • itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。 当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如...
  • 主要介绍了python调用支付宝支付接口流程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 如今支付的引入是很多互联网产品都需要的。为了让用户用着更方便快捷,集成像支付宝、微信支付这样的第三方支付也就成了常有...今天跟着小编就来看看微信支付开发中几个值得注意的地方,涉及代码之处均用 Python 编写。
  • 主要介绍了Python调用微信公众平台接口操作,结合具体实例形式分析了Python针对微信接口数据传输的相关操作技巧,需要的朋友可以参考下
  • python 调用微信截图DLL加代码
  • 开发流程业务流程说明:1、用户在商户侧完成下单,使用微信支付进行支付2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB3、统一下单接口返回支付相关参数给商户后台,如支付跳转...

    本文详细讲解Python语言进行公众号开发时,参考开发者文档进行H5支付,并给出具体的代码:

    一.开发流程

    业务流程说明:

    1、用户在商户侧完成下单,使用微信支付进行支付

    2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB

    3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页

    4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)

    5、如支付成功,商户后台会接收到微信侧的异步通知

    6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)

    7、商户在展示页面,引导用户主动发起支付结果的查询

    8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

    10、展示最终的订单支付结果给用户

    二.具体代码

    1.需准备的参数

    importjsonimporthashlibfrom urllib.parse importurlencodefrom random importRandomimportrequestsfrom django.http importHttpResponse, HttpResponseRedirect

    notify_url= "....../wx_result_H/" #回调函数,完整路由,服务器要带上域名,对应的视图是下面3中的回调函数

    trade_type = 'MWEB' #交易方式

    APP_ID = "wx......" #公众账号的appid

    MCH_ID = "......" #商户号

    API_KEY = "......" #微信商户平台(pay.weixin.qq.com) -->账户设置 -->API安全 -->密钥设置,设置完成后把密钥复制到这里

    UFDODER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder" #该url是微信下单api

    CREATE_IP = '......' #服务器IP

    2.调用支付接口

    defwx_pay_H(request):#data = json.loads(request.body)

    #print(request.body)

    total_price = 0.01 #订单总价

    order_name = '商品费用' #订单名字

    order_detail = '商品费用' #订单描述

    order_id = 20200411234567 #自定义的订单号

    data_dict =wxpay(order_id, order_name, order_detail, total_price)#如果请求成功

    if data_dict.get('return_code') == 'SUCCESS':#请求成功跳转微信中间页面进行支付

    mweb_url = data_dict.get('mweb_url', "")ifmweb_url:#print(mweb_url, type(mweb_url))

    return HttpResponseRedirect(urlencode({"mweb_url": mweb_url}))

    s={"code": 1001,"msg": "获取失败","data": ""}

    s= json.dumps(s, ensure_ascii=False)return HttpResponse(s)

    3.支付后回调接口

    defwx_result_n(request):

    data_dict= trans_xml_to_dict(request.body) #回调数据转字典

    print('支付回调结果', data_dict)

    sign= data_dict.pop('sign') #取出签名

    back_sign = get_sign(data_dict, API_KEY) #计算签名

    #验证签名是否与回调签名相同

    if sign == back_sign and data_dict['return_code'] == 'SUCCESS':

    order_no= data_dict['out_trade_no']#处理支付成功逻辑,根据订单号修改后台数据库状态

    #返回接收结果给微信,否则微信会每隔8分钟发送post请求

    return HttpResponse(trans_dict_to_xml({'return_code': 'SUCCESS', 'return_msg': 'OK'}))return HttpResponse(trans_dict_to_xml({'return_code': 'FAIL', 'return_msg': 'SIGNERROR'}))

    4.工具函数

    def random_str(randomlength=8):"""生成随机字符串

    :param randomlength: 字符串长度

    :return:"""strs= ''chars= 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'length= len(chars) - 1random=Random()for i inrange(randomlength):

    strs+=chars[random.randint(0, length)]print(strs)returnstrsdefwxpay(order_id, order_name, order_price_detail, order_total_price):

    nonce_str= random_str() #拼接出随机的字符串即可,我这里是用 时间+随机数字+5个随机字母

    total_fee = int(float(order_total_price) * 100) #付款金额,单位是分,必须是整数

    print(total_fee)

    params={'appid': APP_ID, #APPID

    'mch_id': MCH_ID, #商户号

    'nonce_str': nonce_str, #随机字符串

    'out_trade_no': order_id, #订单编号,可自定义

    'total_fee': total_fee, #订单总金额

    'spbill_create_ip': CREATE_IP, #自己服务器的IP地址

    'notify_url': notify_url, #回调地址,微信支付成功后会回调这个url,告知商户支付结果

    'body': order_name, #商品描述

    'detail': order_price_detail, #商品描述

    'trade_type': trade_type, #扫码支付类型

    }

    sign= get_sign(params, API_KEY) #获取签名

    params['sign'] = sign #添加签名到参数字典

    xml = trans_dict_to_xml(params) #转换字典为XML

    response = requests.request('post', UFDODER_URL, data=xml.encode()) #以POST方式向微信公众平台服务器发起请求

    data_dict = trans_xml_to_dict(response.content) #将请求返回的数据转为字典

    print(data_dict)returndata_dictdefget_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() #完成加密并转为大写

    print(sign)returnsigndeftrans_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('

    v = ''.format(v)

    data_xml.append('{value}{key}>'.format(key=k, value=v))return '{}'.format(''.join(data_xml)) #返回XML

    deftrans_xml_to_dict(data_xml):"""定义XML转字典的函数

    :param data_xml:

    :return:"""data_dict={}try:importxml.etree.cElementTree as ETexceptImportError:importxml.etree.ElementTree as ET

    root=ET.fromstring(data_xml)for child inroot:

    data_dict[child.tag]=child.textreturn data_dict

    总结

    按照上面四步走,一定可以将H5方式的支付做成功,具体的业务逻辑需要自己处理一下即可,

    希望能够提高大家的开发效率,如有不足请多多指教。

    展开全文
  • 使用itchat+flask实现网页版的python调用微信接口。 使用微信扫描网页上的二维码(itchat生成)通过授权,就能登录网页版微信,保存聊天记录到文本文件。 默认的itchat是桌面版的,结合flask实现了网页版的调微信...
  • 下面一段代码给大家介绍python 处理微信对账单数据,具体代码如下所示: #下载对账单并存储到数据库 @app.route(/bill/,methods=[GET,POST]) def download_bill(date): pay = MyWeiXinPay()#自己的支付类 bill= ...
  • Python,用RPA 艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用 www.i-search.com.cn/index.html?from=line1 一、需求背景: 在 RPA 项目中经常会遇到场景的结果或异常情况需要提醒业务人员,然而目前我们用...

    学Python,用RPA

    艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用

    www.i-search.com.cn/index.html?from=line1

    一、需求背景:

    在 RPA 项目中经常会遇到场景的结果或异常情况需要提醒业务人员,然而目前我们用的比较多的是‘消息框’,‘邮件’等功能,以完成交互。

    二、优缺点:

    “消息框”优势: 能够直观在桌面显示;缺陷: 需要业务人员盯着屏幕,无法达到完全的释放人力;
    “邮件”优势: 无需业务人员盯着屏幕;缺陷: 有些客户会觉得再给机器人申请一个邮箱账户很麻烦;

    三、通过微信公众号推送信息:

    前提:在外网环境下
    缺陷:无法传输文件(目前未找到方法)
    如标题,我们也可考虑通过微信公众号去推送消息,以完成交互。

    微信的优势无需质疑, 微信实现了真正的对话,沟通都在“手指尖”,是一个非常方便的沟通工具。不需要引导用户去下载微信,因为微信已存在于最广度用户的手机上。

    话不多说,下面将介绍实现的方法。

    四、实现方法:

    参考链接:****http://wxpusher.zjiecode.com/docs/#/
    通过链接的文档,应该就可以完成配置了。下面简单说下注意项首先我们先访问演示程序业: http://wxpusher.zjiecode.com/demo/(上面的链接页面也有这个网址)进入后,会看到一个二维码,直接使用微信“扫一扫”功能,进入后台;进入后台后,先创建一个应用,创建成功后会出现下面这张图(需要记录下 APP_TOKEN 的值,后面会用到)创建好应用后,我们再穿件一个主题,创建成功后如下(记录下 ID)创建结束后,点击上图中的关注,在出现二维码后,微信扫下,关注一波,基本就成了。
    接着就到了最后一步的代码了,代码如下:import json import requests from selenium import webdriver import datetime if 条件满足: (或者直接放在try里面,就无须判断) now_time = datetime.datetime.now().strftime(’%Y-%m-%d %H:%M:%S’) url = ‘http://wxpusher.zjiecode.com/api/send/message’ # //内容类型 1表示文字 2表示html(只发送body标签内部的数据即可,不包括body标签) 3表示markdown params = { “appToken”:“AT_RW0Nh80YjqeOd4i0hmCcPl9ravUsuUvN”, “content”:“异常提醒:” + “XX出现异常,请知悉” + “\n更新时间:” + now_time, “contentType”:1, “topicIds”:[314], “uids”:[ ], “url”:"" } params = json.dumps(params) # print(type(params)) headers = { ‘Content-Type’: “application/json”, } html = requests.post(url, data=params, headers=headers) print(html.text)
    最后运行一下,我们的微信就会接收到如下的消息了(当然还可以以更为美观的格式来展现)

    在这里插入图片描述

    展开全文
  • 本文实例讲述了Python调用微信公众平台接口操作。分享给大家供大家参考,具体如下:这里使用的是Django,其他类似# coding=utf-8from django.http import HttpResponseimport hashlib, time, refrom xml.etree import...

    本文实例讲述了Python调用微信公众平台接口操作。分享给大家供大家参考,具体如下:

    这里使用的是Django,其他类似

    # coding=utf-8

    from django.http import HttpResponse

    import hashlib, time, re

    from xml.etree import ElementTree as ET

    def weixin(request):

    token = "your token here"

    params = request.GET

    args = [token, params["timestamp"], params["nonce"]]

    args.sort()

    if hashlib.sha1("".join(args)).hexdigest() == params["signature"]:

    if params.has_key("echostr"):

    return HttpResponse(params["echostr"])

    else:

    reply = """

    %s

    %s

    %s

    text

    %s

    0

    """

    if request.raw_post_data:

    xml = ET.fromstring(request.raw_post_data)

    content = xml.find("Content").text

    fromUserName = xml.find("ToUserName").text

    toUserName = xml.find("FromUserName").text

    postTime = str(int(time.time()))

    if not content:

    return HttpResponse(reply % (toUserName, fromUserName, postTime, "输入点命令吧..."))

    if content == "Hello2BizUser":

    return HttpResponse(reply % (toUserName, fromUserName, postTime, "查询成绩绩点请到http://chajidian.sinaapp.com/ 本微信更多功能开发中..."))

    else:

    return HttpResponse(reply % (toUserName, fromUserName, postTime, "暂不支持任何命令交互哦,功能开发中..."))

    else:

    return HttpResponse("Invalid Request")

    else:

    return HttpResponse("Invalid Request")

    希望本文所述对大家Python程序设计有所帮助。

    展开全文
  • from django.http import HttpResponse, HttpResponseRedirectimport alipay# django例子: alipay 回调接口def alipay_notify(request):if request.method == POST:verify_result = notify_verify(request.POST) # ...

    from django.http import HttpResponse, HttpResponseRedirect

    import alipay

    # django例子: alipay 回调接口

    def alipay_notify(request):

    if request.method == POST:

    verify_result = notify_verify(request.POST) # 解码并验证数据是否有效

    if verify_result:

    tn = request.POST.get(out_trade_no)

    if request.POST.get(trade_status) in (TRADE_FINISHED,TRADE_SUCCESS):

    remark = u使用支付宝 %s 充值,交易号: %s % (request.POST.get(buyer_email), tn)

    print remark

    return HttpResponse(success) #有效数据需要返回 success 给 alipay

    return HttpResponse(fail) # 无效数据返回 fail

    if __name__ == "__main__":      moneys = 100      payurl = alipay.create_direct_pay_by_user(12345, u充值测试, u充值 %d 元 % moneys, moneys)      # return HttpResponseRedirect(payurl)      print payurl # 直接跳转到此 url 用户即可充值  用户充值成功后 alipay 将回调

    展开全文
  • itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如...
  • Python使用JsAPI发起微信支付 Demo这个是基于Django框架。了解更多,可以关注公众号“轻松学编程”1、公众号设置、微信商户号设置这些都可以在官网查得到,左边找到“开发”->“基本配置”在公众号配置域名、ip白...
  • 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息,接受转账、好友请求、入群请求,群管理等功能。可用于二次开发在线微信机器人、微信消息监控、群控软件、开发界面作多个微信控制...
  • /usr/bin/env python3 # coding: utf8 """ *** The core sample object was used for workflow schedule *** Written By dujidan 2020-06-5 """ from __future__ import absolute_import from __future__ import ...
  • 最近一段时间一直在搞微信平台开发,v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为Python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看着微信官方的demo照葫芦画瓢就...
  • python调用企业微信接口

    千次阅读 2019-07-31 18:40:02
    python调用企业微信接口实现关联添加用户 # --*-- coding: utf-8 --*-- import json import urllib2 coreID = secret = apisecret = def getToken(coreID, apisecret): url = '...
  • Python 实现微信小程序的用户登录 小程序可以通过官方提供的登录邓丽来获取用户身份的标示, 具体文档可以参考 官方文档, 通过流程时序可以看到, 对于需要和前端配合的服务端开发, 主要实现的就是通过小程序提供的 ...
  • 使用python的web框架--django实现的微信支付小demo,只需要修改pay-->pay_setting文件里的内容即可
  • python 微信支付

    2020-12-05 12:38:30
    微信支付的3种方式:Native支付是指商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。...JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收...
  • 之前看到网上有人做了一个多功能截图工具,调用的是QQ的截图DLL,原地址:http://www.open-open.com/lib/view/open1331393882327.htmlhttp://blog.sina.com.cn/s/blog_4a94a0db010166fm.html下载下来试了试,发现...
  • 本文介绍python调用微信截图功能实现:监听键盘按键,触发截图功能 一、技术原理 通过dos方式调用PrScrn.dll来实现截图功能 通过监听键盘按键触发截图 二、安装库 venv\Scripts\python.exe -m pip install -i ...
  • python微信支付回调

    2021-03-18 11:40:14
    # 支付回调@api.route('/payCallback', methods=['POST'])def payCallback2():# 接收微信通知(xml格式)xml_data = request.data.decode('utf-8')data = xmltodict.parse(xml_data)# 微信支付订单号transaction_id = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,481
精华内容 18,192
关键字:

python调用微信支付接口

python 订阅