wechatpy.pay.api.tools.WeChatTools.download_bill()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 22
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 4.048

Importance

Changes 0
Metric Value
cc 2
eloc 9
nop 4
dl 0
loc 22
rs 9.95
c 0
b 0
f 0
ccs 1
cts 5
cp 0.2
crap 4.048
1
# -*- coding: utf-8 -*-
2 10
from __future__ import absolute_import, unicode_literals
3 10
from datetime import datetime, date
4
5 10
from wechatpy.pay.base import BaseWeChatPayAPI
6
7
8 10
class WeChatTools(BaseWeChatPayAPI):
9
10 10
    def short_url(self, long_url):
11
        """
12
        长链接转短链接
13
14
        :param long_url: 长链接
15
        :return: 返回的结果数据
16
        """
17
        data = {
18
            'appid': self.appid,
19
            'long_url': long_url,
20
        }
21
        return self._post('tools/shorturl', data=data)
22
23 10
    def download_bill(self, bill_date, bill_type='ALL', device_info=None):
24
        """
25
        下载对账单
26
27
        :param bill_date: 下载对账单的日期
28
        :param bill_type: 账单类型,ALL,返回当日所有订单信息,默认值
29
                          SUCCESS,返回当日成功支付的订单,
30
                          REFUND,返回当日退款订单,
31
                          REVOKED,已撤销的订单
32
        :param device_info: 微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单
33
        :return: 返回的结果数据
34
        """
35
        if isinstance(bill_date, (datetime, date)):
36
            bill_date = bill_date.strftime('%Y%m%d')
37
38
        data = {
39
            'appid': self.appid,
40
            'bill_date': bill_date,
41
            'bill_type': bill_type,
42
            'device_info': device_info,
43
        }
44
        return self._post('pay/downloadbill', data=data)
45
46 10
    def download_fundflow(self, bill_date, account_type='Basic',
47
                          tar_type=None):
48
        """
49
        下载资金账单
50
        https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_18&index=7
51
52
        :param bill_date: 下载对账单的日期
53
        :param account_type: 账单的资金来源账户
54
                             Basic  基本账户
55
                             Operation 运营账户
56
                             Fees 手续费账户
57
        :param tar_type: 非必传参数,固定值:GZIP,返回格式为.gzip的压缩包账单。
58
                         不传则默认为数据流形式。
59
        """
60
        if isinstance(bill_date, (datetime, date)):
61
            bill_date = bill_date.strftime('%Y%m%d')
62
63
        data = {
64
            'appid': self.appid,
65
            'bill_date': bill_date,
66
            'account_type': account_type,
67
            'sign_type': 'HMAC-SHA256'
68
        }
69
        if tar_type is not None:
70
            data['tar_type'] = tar_type
71
        return self._post('pay/downloadfundflow', data=data)
72
73 10
    def auto_code_to_openid(self, auth_code):
74
        """
75
        授权码查询 openid 接口
76
77
        :param auth_code: 扫码支付授权码,设备读取用户微信中的条码或者二维码信息
78
        :return: 返回的结果数据
79
        """
80
        data = {
81
            'appid': self.appid,
82
            'auth_code': auth_code,
83
        }
84
        return self._post('tools/authcodetoopenid', data=data)
85