allinpay.client.api.unitorder 源代码

# encoding: utf-8
from __future__ import absolute_import, unicode_literals

import json

import six
from six.moves.urllib import parse
from optionaldict import optionaldict

from .base import AllInPayBaseAPI


[文档]class UnitOrder(AllInPayBaseAPI): """ 网上收银统一下单 """
[文档] def pay( self, reqsn, trxamt, paytype, acct=None, body=None, notify_url=None, limit_pay=None, sub_appid=None, goods_tag=None, benefitdetail=None, chnlstoreid=None, subbranch=None, extendparams=None, cusip=None, idno=None, truename=None, asinfo=None, fqnum=None, validtime=5, version="11", remark=None ): """ 网上收银统一下单-统一支付接口 https://aipboss.allinpay.com/know/devhelp/home.php?id=88 :param reqsn: 商户交易单号 :param trxamt: 交易金额 :param paytype: 交易方式 :param acct: 支付平台用户标识 :param body: 订单标题 :param notify_url: 交易结果通知地址 :param limit_pay: 支付限制 :param sub_appid: 微信子appid :param goods_tag: 订单优惠标识 :param benefitdetail: 优惠信息 :param chnlstoreid: 渠道门店编号 :param subbranch: 门店号 :param extendparams: 拓展参数 :param cusip: 终端ip :param idno: 证件号 :param truename: 付款人真实姓名 :param asinfo: 分账信息 :param fqnum: 花呗分期 :param validtime: 有效时间 :param version: 版本号 :param remark: 备注 """ if extendparams is not None and isinstance(extendparams, six.string_types): extendparams = json.dumps(extendparams) data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "reqsn": reqsn, "trxamt": trxamt, "paytype": paytype, "acct": acct, "body": body, "notify_url": notify_url, "limit_pay": limit_pay, "sub_appid": sub_appid, "goods_tag": goods_tag, "benefitdetail": benefitdetail, "chnlstoreid": chnlstoreid, "subbranch": subbranch, "extendparams": extendparams, "cusip": cusip, "idno": idno, "truename": truename, "asinfo": asinfo, "fqnum": fqnum, "validtime": validtime, "version": version, "remark": remark }) self.add_sign(data) return self._post("/apiweb/unitorder/pay", data)
[文档] def scanqrpay( self, reqsn, trxamt, authcode, body=None, limit_pay=None, goods_tag=None, benefitdetail=None, chnlstoreid=None, subbranch=None, idno=None, truename=None, asinfo=None, fqnum=None, version="11", remark=None ): """ 网上收银统一统一扫码接口 https://aipboss.allinpay.com/know/devhelp/home.php?id=88 :param reqsn: 商户交易单号 :param trxamt: 交易金额 :param authcode: 支付授权码 :param body: 订单标题 :param limit_pay: 支付限制 :param goods_tag: 订单优惠标识 :param benefitdetail: 优惠信息 :param chnlstoreid: 渠道门店编号 :param subbranch: 门店号 :param idno: 证件号 :param truename: 付款人真实姓名 :param asinfo: 分账信息 :param fqnum: 花呗分期 :param version: 版本号 :param remark: 备注 """ data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "reqsn": reqsn, "trxamt": trxamt, "authcode": authcode, "body": body, "limit_pay": limit_pay, "goods_tag": goods_tag, "benefitdetail": benefitdetail, "chnlstoreid": chnlstoreid, "subbranch": subbranch, "idno": idno, "truename": truename, "asinfo": asinfo, "fqnum": fqnum, "version": version, "remark": remark }) self.add_sign(data) return self._post("/apiweb/unitorder/scanqrpay", data)
[文档] def cancel(self, reqsn, trxamt, oldtrxid=None, oldreqsn=None, version="12"): """ 网上收银统一下单 - 交易撤销 https://aipboss.allinpay.com/know/devhelp/home.php?id=91 H5收银台 - 交易撤销 https://aipboss.allinpay.com/know/devhelp/home.php?id=315 手机支付控件 - 交易撤销 https://aipboss.allinpay.com/know/devhelp/home.php?id=393 :param reqsn: 商户退款交易单号 :param trxamt: 交易金额 :param oldtrxid: 原交易流水 :param oldreqsn: 原交易单号 :param version: 版本号 """ if not oldreqsn and not oldtrxid: raise ValueError("oldtrxid和oldbizseq不能同时为空") data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "reqsn": reqsn, "trxamt": trxamt, "oldtrxid": oldtrxid, "oldreqsn": oldreqsn, "version": version }) self.add_sign(data) return self._post("/apiweb/unitorder/cancel", data)
[文档] def refund(self, reqsn, trxamt, oldtrxid=None, oldreqsn=None, version="12", remark=None): """ 网上收银统一下单 - 交易退款 https://aipboss.allinpay.com/know/devhelp/home.php?id=92 H5收银台 - 交易退款 https://aipboss.allinpay.com/know/devhelp/home.php?id=314 手机支付控件 - 交易退款 https://aipboss.allinpay.com/know/devhelp/home.php?id=394 :param reqsn: 商户退款交易单号 :param trxamt: 交易金额 :param oldtrxid: 原交易流水 :param oldreqsn: 原交易单号 :param version: 版本号 :param remark: 备注 """ if not oldreqsn and not oldtrxid: raise ValueError("oldtrxid和oldbizseq不能同时为空") data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "reqsn": reqsn, "trxamt": trxamt, "oldtrxid": oldtrxid, "oldreqsn": oldreqsn, "remark": remark, "version": version }) self.add_sign(data) return self._post("/apiweb/unitorder/refund", data)
[文档] def query(self, reqsn, trxid, version="12"): """ 网上收银统一下单 - 交易查询 https://aipboss.allinpay.com/know/devhelp/home.php?id=93 H5收银台 - 交易查询 https://aipboss.allinpay.com/know/devhelp/home.php?id=314 手机支付控件 - 交易查询 https://aipboss.allinpay.com/know/devhelp/home.php?id=395 :param reqsn: 商户退款交易单号 :param trxid: 平台交易流水 :param version: 版本号 """ if not reqsn and not trxid: raise ValueError("trxid和reqsn不能同时为空") data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "reqsn": reqsn, "trxid": trxid, "version": version }) self.add_sign(data) return self._post("/apiweb/unitorder/query", data)
[文档] def authcodetouserid(self, authcode, authtype, sub_appid=None, version="12"): """ 网上收银统一下单 - 根据授权码(付款码)获取用户ID https://aipboss.allinpay.com/know/devhelp/home.php?id=373 :param authcode: 授权码(付款码) :param authtype: 授权码类型 :param sub_appid: 微信支付appid :param version: 版本号 """ data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "authcode": authcode, "authtype": authtype, "sub_appid": sub_appid, "version": version }) self.add_sign(data) return self._post("/apiweb/unitorder/query", data)
[文档] def wxfacepayinfo(self, storeid, storename, subappid, rawdata, deviceid=None, attach=None, version="12"): """ 网上收银统一下单 - 根据授权码(付款码)获取用户ID https://aipboss.allinpay.com/know/devhelp/home.php?id=406 :param storeid: 门店编号 :param storename: 门店名称 :param subappid: 微信支付appid :param rawdata: 初始化数据。由微信人脸SDK的接口返回。 :param deviceid: 终端设备编号 :param attach: 附加字段 :param version: 版本号 :return: """ if attach is not None and isinstance(attach, six.string_types): attach = json.dumps(attach) data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "storeid": storeid, "storename": storename, "subappid": subappid, "rawdata": rawdata, "deviceid": deviceid, "attach": attach, "version": version }) self.add_sign(data) return self._post("/apiweb/unitorder/query", data)
[文档] def h5unionpay(self, reqsn, trxamt, returl, notify_url, body, charset='utf-8', version="12", remark=None, validtime=5, limit_pay=None, asinfo=None): """ H5收银台-订单提交接口 https://aipboss.allinpay.com/know/devhelp/home.php?id=313 :param reqsn: 商户唯一订单号 :param trxamt: 付款金额(单位分) :param returl: 页面跳转同步通知页面路径 :param notify_url: 服务器异步通知页面路径 :param body: 订单标题 :param charset: 参数字符编码集 :param version: 版本号 :param remark: 订单备注信息 :param validtime: 有效时间 :param limit_pay: 支付限制 :param asinfo: 分账信息 """ data = optionaldict({ "cusid": self.cus_id, "appid": self.app_id, "trxamt": trxamt, "reqsn": reqsn, "returl": returl, "notify_url": notify_url, "body": body, "charset": charset, "version": version, "remark": remark, "validtime": validtime, "limit_pay": limit_pay, "asinfo": asinfo, }) self.add_sign(data) return parse.urljoin( self.SYB_API_BASE_URL, '/apiweb/h5unionpay/unionorder?%s' % parse.urlencode(data, encoding=charset) )