-
Notifications
You must be signed in to change notification settings - Fork 151
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3266b74
commit 8d6f2cc
Showing
6 changed files
with
122 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,11 @@ | ||
# Changelog | ||
|
||
## [1.3.7] - 2025-01-15 | ||
|
||
### Added | ||
|
||
- 支持新版商家转账功能 | ||
|
||
## [1.3.6] - 2024-12-23 | ||
|
||
### Fixed | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from .type import RequestType | ||
|
||
def mch_transfer_bills(self, out_bill_no, transfer_scene_id, openid, transfer_amount, transfer_remark, user_name=None, user_recv_perception=None, transfer_scene_report_infos=[], appid=None, notify_url=None): | ||
"""发起转账 | ||
:param out_bill_no: 商户单号,商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一,示例值:'plfk2020042013' | ||
:param transfer_scene_id: 转账场景ID,示例值:'1001' | ||
:param openid: 收款用户OpenID,商户AppID下,某用户的OpenID,示例值:'o-MYE42l80oelYMDE34nYD456Xoy' | ||
:param transfer_amount: 转账金额,单位为“分”,示例值: 1000 | ||
:param transfer_remark: 转账备注,用户收款时可见该备注信息,最多允许32个字符,示例值:'2020年4月报销' | ||
:param user_name: 收款用户姓名,转账金额 >= 2,000元时,该笔明细必须填写。若商户传入收款用户姓名,微信支付会校验收款用户与输入姓名是否一致,并提供电子回单,示例值:'张三' | ||
:param user_recv_perception: 用户收款时感知到的收款原因,将根据转账场景自动展示默认内容。如有其他展示需求,可在本字段传入。示例值: '现金奖励' | ||
:param transfer_scene_report_infos: 转账场景报备信息,示例值: [{'info_type':'奖励说明', 'info_content':'注册会员抽奖'}] | ||
:param appid: 应用ID,可不填,默认传入初始化时的appid,示例值:'wx1234567890abcdef' | ||
:param notify_url: 通知地址,异步接收微信支付结果通知的回调地址,示例值:'https://www.weixin.qq.com/wxpay/pay.php' | ||
""" | ||
params={} | ||
if out_bill_no: | ||
params.update({'out_bill_no':out_bill_no}) | ||
else: | ||
raise Exception('out_batch_no is not assigned') | ||
if transfer_scene_id: | ||
params.update({'transfer_scene_id':transfer_scene_id}) | ||
else: | ||
raise Exception('transfer_scene_id is not assigned') | ||
if openid: | ||
params.update({'openid':openid}) | ||
else: | ||
raise Exception('openid is not assigned') | ||
if transfer_amount: | ||
params.update({'transfer_amount':transfer_amount}) | ||
else: | ||
raise Exception('transfer_amount is not assigned') | ||
if transfer_remark: | ||
params.update({'transfer_remark':transfer_remark}) | ||
else: | ||
raise Exception('transfer_remark is not assigned') | ||
cipher_data = False | ||
if user_name: | ||
params.update({'user_name':self._core.encrypt(user_name)}) | ||
cipher_data = True | ||
if transfer_amount >= 200000 and not user_name: | ||
raise Exception('user_name is not assigned') | ||
if user_recv_perception: | ||
params.update({'user_recv_perception':user_recv_perception}) | ||
if transfer_scene_report_infos: | ||
params.update({'transfer_scene_report_infos':transfer_scene_report_infos}) | ||
params.update({'appid': appid or self._appid}) | ||
params.update({'notify_url': notify_url or self._notify_url}) | ||
path = '/v3/fund-app/mch-transfer/transfer-bills' | ||
return self._core.request(path, method=RequestType.POST, data=params, cipher_data=cipher_data) | ||
|
||
def mch_transfer_bills_cancel(self, out_bill_no): | ||
"""撤销转账 | ||
:param out_bill_no: 商户单号,商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一,示例值:'plfk2020042013' | ||
""" | ||
if out_bill_no: | ||
path = f'/v3/fund-app/mch-transfer/transfer-bills/out-bill-no/{out_bill_no}/cancel' | ||
else: | ||
raise Exception('out_bill_no is not assigned') | ||
return self._core.request(path) | ||
|
||
def mch_transfer_bills_query(self, out_bill_no=None, transfer_bill_no=None): | ||
"""查询转账单 | ||
:param out_bill_no: 商户单号,商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一,示例值:'plfk2020042013' | ||
:param transfer_bill_no: 微信转账单号,微信商家转账系统返回的唯一标识,示例值: '1330000071100999991182020050700019480001' | ||
""" | ||
if not (out_bill_no or transfer_bill_no): | ||
raise Exception('out_bill_no or transfer_bill_no is not assigned') | ||
if out_bill_no: | ||
path = f'/v3/fund-app/mch-transfer/transfer-bills/out-bill-no/{out_bill_no}' | ||
else: | ||
path = f'/v3/fund-app/mch-transfer/transfer-bills/transfer-bill-no/{transfer_bill_no}' | ||
return self._core.request(path) | ||
|
||
def mch_transfer_elecsign(self, out_bill_no=None, transfer_bill_no=None): | ||
"""申请电子回单 | ||
:param out_bill_no: 商户单号,商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一,示例值:'plfk2020042013' | ||
:param transfer_bill_no: 微信转账单号,微信商家转账系统返回的唯一标识,示例值: '1330000071100999991182020050700019480001' | ||
""" | ||
if not (out_bill_no or transfer_bill_no): | ||
raise Exception('out_bill_no or transfer_bill_no is not assigned') | ||
params = {} | ||
if out_bill_no: | ||
params.update({'out_bill_no':out_bill_no}) | ||
path = '/v3/fund-app/mch-transfer/elecsign/out-bill-no' | ||
else: | ||
params.update({'transfer_bill_no':transfer_bill_no}) | ||
path = '/v3/fund-app/mch-transfer/elecsign/transfer-bill-no' | ||
return self._core.request(path, method=RequestType.POST, data=params) | ||
|
||
def mch_transfer_elecsign_query(self, out_bill_no=None, transfer_bill_no=None): | ||
"""查询电子回单 | ||
:param out_bill_no: 商户单号,商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一,示例值:'plfk2020042013' | ||
:param transfer_bill_no: 微信转账单号,微信商家转账系统返回的唯一标识,示例值: '1330000071100999991182020050700019480001' | ||
""" | ||
if not (out_bill_no or transfer_bill_no): | ||
raise Exception('out_bill_no or transfer_bill_no is not assigned') | ||
if out_bill_no: | ||
path = f'/v3/fund-app/mch-transfer/elecsign/out-bill-no/{out_bill_no}' | ||
else: | ||
path = f'/v3/fund-app/mch-transfer/elecsign/transfer-bill-no/{transfer_bill_no}' | ||
return self._core.request(path) |