wechatpy.pay.api.coupon.WeChatCoupon.query_stock()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 18
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.2963

Importance

Changes 0
Metric Value
cc 1
eloc 9
nop 4
dl 0
loc 18
rs 9.95
c 0
b 0
f 0
ccs 1
cts 3
cp 0.3333
crap 1.2963
1
# -*- coding: utf-8 -*-
2 10
from __future__ import absolute_import, unicode_literals
3 10
import random
4 10
from datetime import datetime
5
6 10
from wechatpy.pay.base import BaseWeChatPayAPI
7
8
9 10
class WeChatCoupon(BaseWeChatPayAPI):
10
11 10
    def send(self, user_id, stock_id, op_user_id=None, device_info=None,
12
             out_trade_no=None):
13
        """
14
        发放代金券
15
16
        :param user_id: 用户在公众号下的 openid
17
        :param stock_id: 代金券批次 ID
18
        :param op_user_id: 可选,操作员账号,默认为商户号
19
        :param device_info: 可选,微信支付分配的终端设备号
20
        :param out_trade_no: 可选,商户订单号,需保持唯一性,默认自动生成
21
        :return: 返回的结果信息
22
        """
23
        if not out_trade_no:
24
            now = datetime.now()
25
            out_trade_no = '{0}{1}{2}'.format(
26
                self.mch_id,
27
                now.strftime('%Y%m%d%H%M%S'),
28
                random.randint(1000, 10000)
29
            )
30
        data = {
31
            'appid': self.appid,
32
            'coupon_stock_id': stock_id,
33
            'openid': user_id,
34
            'openid_count': 1,
35
            'partner_trade_no': out_trade_no,
36
            'op_user_id': op_user_id,
37
            'device_info': device_info,
38
            'version': '1.0',
39
            'type': 'XML',
40
        }
41
        return self._post('mmpaymkttransfers/send_coupon', data=data)
42
43 10
    def query_stock(self, stock_id, op_user_id=None, device_info=None):
44
        """
45
        查询代金券批次
46
47
        :param stock_id: 代金券批次 ID
48
        :param op_user_id: 可选,操作员账号,默认为商户号
49
        :param device_info: 可选,微信支付分配的终端设备号
50
        :return: 返回的结果信息
51
        """
52
        data = {
53
            'appid': self.appid,
54
            'coupon_stock_id': stock_id,
55
            'op_user_id': op_user_id,
56
            'device_info': device_info,
57
            'version': '1.0',
58
            'type': 'XML',
59
        }
60
        return self._post('mmpaymkttransfers/query_coupon_stock', data=data)
61
62 10
    def query_coupon(self, coupon_id, user_id,
63
                     op_user_id=None, device_info=None):
64
        """
65
        查询代金券信息
66
67
        :param coupon_id: 代金券 ID
68
        :param user_id: 用户在公众号下的 openid
69
        :param op_user_id: 可选,操作员账号,默认为商户号
70
        :param device_info: 可选,微信支付分配的终端设备号
71
        :return: 返回的结果信息
72
        """
73
        data = {
74
            'coupon_id': coupon_id,
75
            'openid': user_id,
76
            'appid': self.appid,
77
            'op_user_id': op_user_id,
78
            'device_info': device_info,
79
            'version': '1.0',
80
            'type': 'XML',
81
        }
82
        return self._post('promotion/query_coupon', data=data)
83