-
Notifications
You must be signed in to change notification settings - Fork 226
微信支付
# 微信公号/扫码支付
from weixin.pay import WeixinPay
wxpay = WeixinPay(appid='appid',
mch_id='mchid',
notify_url='url',
partner_key='key')
create_pay_info= {}
# 统一下单
wxpay.unifiedorder(**create_pay_info)
# 查询订单
wxapp.order_query(out_trade_no='out_trade_no')
# 企业付款
wxepay = WeixinEnterprisePay(appid='appid',
mch_id='mchid',
mch_key='mch_key',
mch_cert='mch_cert',
partner_key='key')
wxepay.transfers(partner_trade_no,
openid,
amount,
desc=u'结算')
# 企业付款查询
wxepay_query = WeixinEnterprisePayQuery(appid='appid',
mch_id='mchid',
mch_key='mch_key',
mch_cert='mch_cert',
partner_key='key')
wxepay_query.gettransferinfo(partner_trade_no)
class WeixinPay(builtin.object)
-----------------------------------------------------------------
Data and other attributes defined here:
BASE_URL = 'https://api.mch.weixin.qq.com/'
PAY_SOURCE = 'weixin'
--------------------------------------------------------------
Methods defined here:
__init__(self, appid, mch_id, *args, **kwargs)# 微信支付接口初始化
参数:
* :param appid: 微信公众号 appid
* :param api_key: 商户 key
* :param mch_id: 商户号
* :param sub_mch_id: 可选,子商户号,受理模式下必填
* :param mch_cert: 可选,商户证书路径 申请退款必须
* :param mch_key: 可选,商户证书私钥路径 申请退款必选
* :param notify_url: 可选 接收微信支付异步通知回调地址 统一下单接口必选
* :param partner_key: 商户支付Key
order_close(self, out_trade_no)
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_3
参数
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :return: 返回的结果数据
order_query(self, transaction_id='', out_trade_no='')
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2
参数:
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :param transaction_id: 可选,微信订单号 和out_trade_no 二选一
* :return: 返回的结果数据
# trade_state 订单状态
SUCCESS—支付成功
REFUND—转入退款
NOTPAY—未支付
CLOSED—已关闭
REVOKED—已撤销(刷卡支付)
USERPAYING--用户支付中
PAYERROR--支付失败(其他原因,如银行返回失败)
refund(self, out_refund_no, total_fee, refund_fee, op_user_id, out_trade_no='', transaction_id='', device_info='', refund_fee_type='CNY')
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
参数:
* :param out_refund_no: 商户退款单号
* :param total_fee: 总金额
* :param refund_fee: 退款金额
* :param op_user_id: 操作员帐号, 默认为商户号
* :param transaction_id: 可选,商户订单号,默认自动生成
* :param out_trade_no: 可选,微信订单号 以上两个二选一
* :param refund_fee_type: 可选 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
* :param device_info: 可选,终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
* :return: 返回的结果数据
refundquery(self, out_trade_no='', transaction_id='', out_refund_no='', refund_id='', device_info='')
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
参数:
* :param transaction_id: 可选,微信订单号
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :param out_refund_no: 可选,商户退款单号
* :param refund_id: 可选,微信退款单号 以上四个四选一
* :param device_info: 可选,终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
* :return: 返回的结果数据
# 退款状态:
SUCCESS 退款成功
FAIL 退款失败
PROCESSING 退款处理中
NOTSURE 未确定,需要商户原退款单号重新发起
CHANGE 转入代发,退款到银行发现用户的卡作废或者冻结了,
导致原路退款银行卡失败,资金回流到商户的现金帐号,
需要商户人工干预,通过线下或者财付通转账的方式进行退款。
unifiedorder(self, body='', out_trade_no='', total_fee='', openid='', detail='', attach='', time_start='', time_expire='', goods_tag='', product_id='', limit_pay='', device_info='', fee_type='CNY', spbill_create_ip='202.106.199.34', trade_type='JSAPI', notify_url='')
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
参数:
* :param trade_type: 交易类型,取值如下:JSAPI,NATIVE,APP,WAP, MWEB
* :param body: 商品描述
* :param total_fee: 总金额,单位分
* :param notify_url: 接收微信支付异步通知回调地址
* :param client_ip: 可选,APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP
* :param openid: 可选,用户在商户appid下的唯一标识。trade_type=JSAPI,此参数必传
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :param detail: 可选,商品详情
* :param attach: 可选,附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
* :param fee_type: 可选,符合ISO 4217标准的三位字母代码,默认人民币:CNY
* :param time_start: 可选,订单生成时间,默认为当前时间
* :param time_expire: 可选,订单失效时间,默认为订单生成时间后两小时
* :param goods_tag: 可选,商品标记,代金券或立减优惠功能的参数
* :param product_id: 可选,trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义
* :param device_info: 可选,终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
* :param spbill_create_ip: 调用接口的机器Ip地址
* :param limit_pay: 可选,指定支付方式,no_credit--指定不能使用信用卡支付
* :return: 返回的结果数据
微信小程序支付继承自WeixinPay 重写了
unifiedorder
和build_wxapp_sign
签名生成函数
Data and other attributes defined here:/
BASE_URL = 'https://api.mch.weixin.qq.com/'
PAY_SOURCE = 'wxapp'
unifiedorder(self, body='', out_trade_no='', total_fee='', openid='', detail='', attach='', time_start='', time_expire='', goods_tag='', product_id='', limit_pay='', device_info='', fee_type='CNY', spbill_create_ip='202.106.199.34', trade_type='JSAPI', notify_url='') #
官方文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
参数:
* :param trade_type: 交易类型,取值如下:JSAPI,NATIVE,APP,WAP, MWEB
* :param body: 商品描述
* :param total_fee: 总金额,单位分
* :param notify_url: 接收微信支付异步通知回调地址
* :param client_ip: 可选,APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP
* :param openid: 可选,用户在商户appid下的唯一标识。trade_type=JSAPI,此参数必传
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :param detail: 可选,商品详情
* :param attach: 可选,附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
* :param fee_type: 可选,符合ISO 4217标准的三位字母代码,默认人民币:CNY
* :param time_start: 可选,订单生成时间,默认为当前时间
* :param time_expire: 可选,订单失效时间,默认为订单生成时间后两小时
* :param goods_tag: 可选,商品标记,代金券或立减优惠功能的参数
* :param product_id: 可选,trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义
* :param device_info: 可选,终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
* :param spbill_create_ip: 调用接口的机器Ip地址
* :param limit_pay: 可选,指定支付方式,no_credit--指定不能使用信用卡支付
* :return: 返回的结果数据
class WeixinAppPay(WeixinPay) # 微信移动APP支付
微信小程序支付继承自WeixinPay 重写了
unifiedorder
和build_wxapp_sign
签名生成函数
Data and other attributes defined here:
BASE_URL = 'https://api.mch.weixin.qq.com/'
Methods defined here:
- build_app_sign(self, prepay_id, package='Sign=WXPay')
- get_base_params(self, is_app=False)
- prepare_request(self, method, path, params)
unifiedorder(self, body='', out_trade_no='', total_fee='', openid='', detail='', attach='', time_start='', time_expire='', goods_tag='', product_id='', limit_pay='', device_info='', fee_type='CNY', spbill_create_ip='202.106.199.34', trade_type='JSAPI', notify_url='') #
官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
参数:
* :param trade_type: 交易类型,取值如下:JSAPI,NATIVE,APP,WAP, MWEB
* :param body: 商品描述
* :param total_fee: 总金额,单位分
* :param notify_url: 接收微信支付异步通知回调地址
* :param client_ip: 可选,APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP
* :param openid: 可选,用户在商户appid下的唯一标识。trade_type=JSAPI,此参数必传
* :param out_trade_no: 可选,商户订单号,默认自动生成
* :param detail: 可选,商品详情
* :param attach: 可选,附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
* :param fee_type: 可选,符合ISO 4217标准的三位字母代码,默认人民币:CNY
* :param time_start: 可选,订单生成时间,默认为当前时间
* :param time_expire: 可选,订单失效时间,默认为订单生成时间后两小时
* :param goods_tag: 可选,商品标记,代金券或立减优惠功能的参数
* :param product_id: 可选,trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义
* :param device_info: 可选,终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
* :param spbill_create_ip: 调用接口的机器Ip地址
* :param limit_pay: 可选,指定支付方式,no_credit--指定不能使用信用卡支付
* :return: 返回的结果数据