Completed
Push — master ( 76d6fa...9bc9b6 )
by Wei
08:43
created

Redpack   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 40
dl 0
loc 89
ccs 42
cts 42
cp 1
rs 10
c 0
b 0
f 0
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A sendRedPack() 0 17 3
A sendGroupRedPack() 0 18 3
A getHbInfo() 0 7 1
1
<?php
2
namespace zhangv\wechat\pay\service;
3
use \zhangv\wechat\pay\WechatPay;
4
use \Exception;
5
6
/**
7
 * 现金红包
8
 * @license MIT
9
 * @zhangv
10
 * @link https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1
11
 *
12
 */
13
class Redpack extends WechatPay {
14
15
	/**
16
	 * 发放普通红包
17
	 * @link https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3
18
	 * @param $mch_billno string 商户订单号
19
	 * @param $send_name string 商户名称
20
	 * @param $re_openid string 用户openid
21
	 * @param $total_amount int 付款金额 单位分
22
	 * @param $total_num int 红包发放总人数
23
	 * @param $wishing string 红包祝福语
24
	 * @param $act_name string 活动名称
25
	 * @param $remark string 备注
26
	 * @param $scene_id string 场景id,发放红包使用场景,红包金额大于200时必传 PRODUCT_1:商品促销 PRODUCT_2:抽奖 PRODUCT_3:虚拟物品兑奖 PRODUCT_4:企业内部福利 PRODUCT_5:渠道分润 PRODUCT_6:保险回馈 PRODUCT_7:彩票派奖 PRODUCT_8:税务刮奖
27
	 * @param $riskinfo string 活动信息
28
	 * @param $consume_mch_id string 资金授权商户号
29
	 * @return array
30
	 * @throws Exception
31
	 */
32 2
	public function sendRedPack($mch_billno,$send_name,$re_openid,$total_amount,$total_num,$wishing,$act_name,$remark,$scene_id = '',$riskinfo = '',$consume_mch_id = ''){
33 2
		$data = array();
34 2
		$data["wxappid"] = $this->config["app_id"];
35 2
		$data["mch_billno"] = $mch_billno;
36 2
		$data["send_name"] = $send_name;
37 2
		$data["re_openid"] = $re_openid;
38 2
		$data["total_amount"] = $total_amount;
39 2
		if($total_amount > 20000 && trim($scene_id)=='') throw new Exception("scene_id is required when total_amount beyond 20000");
40 2
		$data["total_num"] = $total_num;
41 2
		$data["wishing"] = $wishing;
42 2
		$data["act_name"] = $act_name;
43 2
		$data["remark"] = $remark;
44 2
		$data["scene_id"] = $scene_id;
45 2
		$data["riskinfo"] = $riskinfo;
46 2
		$data["consume_mch_id"] = $consume_mch_id;
47 2
		$result = $this->post(self::URL_SENDREDPACK, $data, true); //cert is required
48 1
		return $result;
49
	}
50
51
	/**
52
	 * 发放裂变红包
53
	 * @link https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4
54
	 * @param $mch_billno string 商户订单号
55
	 * @param $send_name string 商户名称
56
	 * @param $re_openid string 用户openid
57
	 * @param $total_amount int 付款金额 单位分
58
	 * @param $total_num int 红包发放总人数
59
	 * @param $wishing string 红包祝福语
60
	 * @param $act_name string 活动名称
61
	 * @param $remark string 备注
62
	 * @param $scene_id string 场景id,发放红包使用场景,红包金额大于200时必传 PRODUCT_1:商品促销 PRODUCT_2:抽奖 PRODUCT_3:虚拟物品兑奖 PRODUCT_4:企业内部福利 PRODUCT_5:渠道分润 PRODUCT_6:保险回馈 PRODUCT_7:彩票派奖 PRODUCT_8:税务刮奖
63
	 * @param $riskinfo string 活动信息
64
	 * @param $consume_mch_id string 资金授权商户号
65
	 * @return array
66
	 * @throws Exception
67
	 */
68 2
	public function sendGroupRedPack($mch_billno,$send_name,$re_openid,$total_amount,$total_num,$wishing,$act_name,$remark,$scene_id = '',$riskinfo = '',$consume_mch_id = ''){
69 2
		$data = array();
70 2
		$data["wxappid"] = $this->config["app_id"];//NOTE: WXappid
71 2
		$data["mch_billno"] = $mch_billno;
72 2
		$data["send_name"] = $send_name;
73 2
		$data["re_openid"] = $re_openid;
74 2
		$data["total_amount"] = $total_amount;
75 2
		if($total_amount > 20000 && trim($scene_id)=='') throw new Exception("scene_id is required when total_amount beyond 20000(200rmb)");
76 2
		$data["total_num"] = $total_num;
77 2
		$data["amt_type"] = 'ALL_RAND'; //红包金额设置方式 ALL_RAND—全部随机
78 2
		$data["wishing"] = $wishing;
79 2
		$data["act_name"] = $act_name;
80 2
		$data["remark"] = $remark;
81 2
		$data["scene_id"] = $scene_id;
82 2
		$data["riskinfo"] = $riskinfo;
83 2
		$data["consume_mch_id"] = $consume_mch_id;
84 2
		$result = $this->post(self::URL_SENDGROUPREDPACK, $data, true); //cert is required
85 1
		return $result;
86
	}
87
88
	/**
89
	 * 查询红包记录
90
	 * @param $mch_billno string 商户订单号
91
	 * @return array
92
	 * @throws Exception
93
	 * @link https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_6&index=5
94
	 */
95 2
	public function getHbInfo($mch_billno){
96 2
		$data = array();
97 2
		$data["mch_billno"] = $mch_billno;
98 2
		$data["appid"] = $this->config["app_id"];
99 2
		$data["bill_type"] = 'MCHT'; //MCHT:通过商户订单号获取红包信息。
100 2
		$result = $this->post(self::URL_GETHBINFO, $data, true); //cert is required
101 1
		return $result;
102
	}
103
104
}