微信支付SDK(python版)

本文介绍了作者根据PHP版微信支付接口Demo,移植到Python的详细过程。开发者可以参照已移植的SDK,快速理解和使用微信支付的JsApi调用方式。源代码已上传至GitHub,欢迎查看并提出改进。
摘要由CSDN通过智能技术生成

最近一段时间一直在搞微信平台开发,最近的v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为

python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看着微信官方的demo

照葫芦画瓢就可以了。

我已经把代码放到github了,https://github.com/Skycrab/wzhifuSDK,我主要测试了JsApi调用方式,其它的调用方式并没有测试,如果你发现了bug,请多多pull request,我将不甚感激。

方便观看,代码贴于此。

#coding:utf-8
"""
Created on 2014-11-24

@author: http://blog.csdn.net/yueguanghaidao

 * 微信支付帮助库
 * ====================================================
 * 接口分三种类型:
 * 【请求型接口】--Wxpay_client_
 *      统一支付接口类--UnifiedOrder
 *      订单查询接口--OrderQuery
 *      退款申请接口--Refund
 *      退款查询接口--RefundQuery
 *      对账单接口--DownloadBill
 *      短链接转换接口--ShortUrl
 * 【响应型接口】--Wxpay_server_
 *      通用通知接口--Notify
 *      Native支付——请求商家获取商品信息接口--NativeCall
 * 【其他】
 *      静态链接二维码--NativeLink
 *      JSAPI支付--JsApi
 * =====================================================
 * 【CommonUtil】常用工具:
 *      trimString(),设置参数时需要用到的字符处理函数
 *      createNoncestr(),产生随机字符串,不长于32位
 *      formatBizQueryParaMap(),格式化参数,签名过程需要用到
 *      getSign(),生成签名
 *      arrayToXml(),array转xml
 *      xmlToArray(),xml转 array
 *      postXmlCurl(),以post方式提交xml到对应的接口url
 *      postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url

"""

import json
import time
import random
import urllib2
import hashlib
import threading
from urllib import quote
import xml.etree.ElementTree as ET

try:
    import pycurl
    from cStringIO import StringIO
except ImportError:
    pycurl = None


class WxPayConf_pub(object):
    """配置账号信息"""

    #=======【基本信息设置】=====================================
    #微信公众号身份的唯一标识。审核通过后,在微信发送的邮件中查看
    APPID = "wx8888888888888888"
    #JSAPI接口中获取openid,审核后在公众平台开启开发模式后可查看
    APPSECRET = "48888888888888888888888888888887"
    #受理商ID,身份标识
    MCHID = "18888887"
    #商户支付密钥Key。审核通过后,在微信发送的邮件中查看
    KEY = "48888888888888888888888888888886"
   

    #=======【异步通知url设置】===================================
    #异步通知url,商户根据实际开发过程设定
    NOTIFY_URL = "http://******.com/payback"

    #=======【JSAPI路径设置】===================================
    #获取access_token过程中的跳转uri,通过跳转将code传入jsapi支付页面
    JS_API_CALL_URL = "http://******.com/pay/?showwxpaytitle=1"

    #=======【证书路径设置】=====================================
    #证书路径,注意应该填写绝对路径
    SSLCERT_PATH = "/******/cacert/apiclient_cert.pem"
    SSLKEY_PATH = "/******/cacert/apiclient_key.pem"

    #=======【curl超时设置】===================================
    CURL_TIMEOUT = 30

    #=======【HTTP客户端设置】===================================
    HTTP_CLIENT = "CURL"  # ("URLLIB", "CURL")


class Singleton(object):
    """单例模式"""

    _instance_lock = threading.Lock()

    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, "_instance"):
            with cls._instance_lock:
                if not 
Python 微信支付 wechatsdk 是一个用于处理微信支付功能的 Python 第三方库。它提供了一系列的接口和方法,用于实现微信支付交易的各种功能,包括创建订单、查询订单状态、申请退款等。 使用 wechatsdk,我们可以方便地集成微信支付功能到 Python 项目中。首先,我们需要通过在微信商户平台上注册账号,并获得相应的密钥和证书文件。然后,在 Python 项目中引入 wechatsdk 库,并根据接口文档的要求设置好相关的配置参数,例如商户 ID、商户密钥等。 接下来,我们可以使用 wechatsdk 提供的接口进行各种支付交易操作。例如,创建订单时我们可以使用统一下单接口,传入必要的参数例如商品描述、订单金额等。wechatsdk 会自动将收到的参数进行签名,并生成一个支付链接。用户在微信客户端打开支付链接后,可以进行支付操作。 支付成功后,wechatsdk 提供了查询订单接口,用于查询订单的支付状态。根据订单号或其他标识,我们可以向微信服务器发起查询请求,获取订单的详细信息,例如支付状态、支付金额等。 退款功能也可以通过 wechatsdk 来实现。我们可以使用申请退款接口传入相应的参数,并进行退款操作。微信服务器会根据退款申请的参数进行处理,并返回相应的结果。 总之,Python 微信支付 wechatsdk 是一个方便易用的库,可以帮助开发者快速集成微信支付功能到他们的 Python 项目中。无论是处理支付交易、查询订单状态还是申请退款,都可以借助 wechatsdk 轻松实现。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值