# -*- coding: utf-8 -*- """生成汇付分账相关 Word 文档""" from pathlib import Path from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING from docx.oxml.ns import qn from docx.shared import Cm, Pt DOCS_DIR = Path(__file__).parent # 甲方(平台)信息 — 修改此处后重新运行脚本即可 COMPANY = { "name": "贵州宥川商贸有限公司", "credit_code": "91520402MAKD45F14Y", "huifu_id": "6666000237529347", "legal_person": "周成", "address": "贵州省织金县实兴乡上坝村周家寨组", "phone": "13368531489", "sign_place": "贵州省织金县", "miniprogram": "橙虎小酒", } def output_paths(): suffix = COMPANY["name"] return ( DOCS_DIR / f"多方分账业务合作协议-{suffix}.docx", DOCS_DIR / f"汇付分账40%申请填写说明-{suffix}.docx", ) def set_run_font(run, name="宋体", size=12, bold=False): run.font.name = name run._element.rPr.rFonts.set(qn("w:eastAsia"), name) run.font.size = Pt(size) run.font.bold = bold def add_para(doc, text, align=WD_ALIGN_PARAGRAPH.JUSTIFY, size=12, bold=False, space_after=6, first_line_indent=None): p = doc.add_paragraph() p.alignment = align p.paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE p.paragraph_format.space_after = Pt(space_after) if first_line_indent is not None: p.paragraph_format.first_line_indent = Cm(first_line_indent) run = p.add_run(text) set_run_font(run, size=size, bold=bold) return p def add_heading_text(doc, text, level=1): sizes = {1: 16, 2: 14, 3: 12} add_para( doc, text, align=WD_ALIGN_PARAGRAPH.CENTER if level == 1 else WD_ALIGN_PARAGRAPH.LEFT, size=sizes.get(level, 12), bold=True, space_after=10, ) def add_info_table(doc, rows): table = doc.add_table(rows=len(rows), cols=2) table.style = "Table Grid" for i, (k, v) in enumerate(rows): table.rows[i].cells[0].text = k table.rows[i].cells[1].text = v for cell in table.rows[i].cells: for para in cell.paragraphs: para.paragraph_format.line_spacing_rule = WD_LINE_SPACING.SINGLE for run in para.runs: set_run_font(run, size=11) doc.add_paragraph() def build(): contract_output, _ = output_paths() c = COMPANY doc = Document() section = doc.sections[0] section.top_margin = Cm(2.54) section.bottom_margin = Cm(2.54) section.left_margin = Cm(3.17) section.right_margin = Cm(3.17) add_heading_text(doc, "多方分账业务合作协议", level=1) add_para(doc, "合同编号:XGXJ-FS-________", align=WD_ALIGN_PARAGRAPH.LEFT, space_after=4) add_para(doc, f"签订地点:{c['sign_place']}", align=WD_ALIGN_PARAGRAPH.LEFT, space_after=4) add_para(doc, "签订日期:________年____月____日", align=WD_ALIGN_PARAGRAPH.LEFT, space_after=12) add_heading_text(doc, "甲方(平台/分账发起方)", level=2) add_info_table(doc, [ ("名称", c["name"]), ("统一社会信用代码", c["credit_code"]), ("法定代表人", c["legal_person"]), ("住所", c["address"]), ("联系电话", c["phone"]), ("汇付商户号", c["huifu_id"]), ]) add_heading_text(doc, "乙方(分账接收方)", level=2) add_para(doc, "主体类型(择一填写):□ 个体工商户 □ 个人(汇付进件用户)", space_after=8) add_info_table(doc, [ ("姓名/字号", "____________"), ("身份证号码", "____________________"), ("住所/经营场所", "____________________"), ("联系电话", "____________"), ("汇付商户号", "____________"), ("合作角色", "□ 推广员 □ 区域代理(区域:____________)"), ]) add_para( doc, f"鉴于甲方依法经营“{c['miniprogram']}”微信小程序商城,乙方自愿成为甲方推广员和/或区域代理;" "双方依据《中华人民共和国民法典》及相关法规,就通过汇付天下有限公司(以下简称“汇付”)" "支付通道进行延时分账结算事宜,达成如下协议:", first_line_indent=0.74, space_after=10, ) articles = [ ("第一条 合作内容与范围", [ "1.1 乙方在甲方平台注册并通过甲方审核后,以推广员和/或区域代理身份开展市场拓展、客户维护及销售促成活动。乙方非甲方员工,不建立劳动关系。", "1.2 甲方负责商品供应、定价、订单处理、发货、开票(如需)及售后服务;乙方应遵守甲方公布的《分销管理办法》《区域代理管理办法》及平台规则。", "1.3 乙方不得擅自以甲方名义对外签约、收款或销售非甲方授权商品;不得发布虚假广告或实施误导消费者行为。", ]), ("第二条 服务费计算与结算", [ "2.1 乙方服务费自甲方与消费者之间真实、合法、有效的商品交易产生,按甲方系统在订单生成时已生效的规则计算:", "(1)推广员:按订单商品实付金额(不含运费,下同)及乙方等级对应比例计算推广服务费;具体比例以甲方后台“分销等级”配置及商品独立规则为准。", "(2)区域代理:按订单收货地址所在行政区域及乙方代理层级,以实付金额为基数按约定比例或固定金额计算区域服务费;具体以甲方后台“区域公司等级”配置为准。", "2.2 结算时点:消费者确认收货或订单达到“已完成”状态后,甲方系统触发分账。此前服务费处于待结算状态,不视为已到期应付。", f"2.3 分账方式:甲方通过汇付延时分账功能,将乙方应得服务费划转至乙方汇付商户号(huifu_id)。乙方应配合完成汇付进件、实名认证、银行卡绑定及与甲方主商户({c['huifu_id']})的分账关系建立。", "2.4 上限说明:单笔订单向全部分账接收方(含各级推广员、区域代理)划转总额不超过该笔订单实付金额的40%。若规则计算结果超过上限,按甲方系统裁切规则执行,乙方无异议。", "2.5 退款扣减:订单发生退款、退货或撤销的,对应推广服务费、区域服务费予以扣减或追回;已分账的,乙方应在收到甲方通知后配合退回或同意从后续结算中抵扣。", "2.6 甲方不向乙方承诺固定收入或最低收益。乙方因推广活动产生的通讯、交通、税费(除汇付及法定代扣代缴外)等成本由乙方自行承担。", ]), ("第三条 汇付分账授权", [ f"3.1 乙方知悉并同意:甲方作为汇付主商户(商户号:{c['huifu_id']}),在符合本协议及平台规则的前提下,通过汇付接口将属于乙方的服务费直接分账至乙方汇付账户,该行为已获乙方授权,视为甲方已向乙方履行付款义务。", "3.2 乙方汇付账户提现、结算周期及手续费,按汇付公示及乙方进件协议执行,与甲方无关。", "3.3 乙方应确保进件信息、结算银行卡真实有效;因乙方账户异常导致分账失败的,甲方有权暂缓支付并在乙方更正后重新发起,不构成违约。", ]), ("第四条 双方权利义务", [ "4.1 甲方权利义务", "(1)按本协议及平台规则计算并发起分账;", "(2)向乙方提供必要的后台查询、业绩统计;", "(3)对乙方违规行为有权警告、暂停分账、取消资格;", "(4)依法履行平台经营义务及消费者保护责任。", "4.2 乙方权利义务", "(1)合法合规开展推广,维护甲方品牌形象;", "(2)对获知的消费者信息、价格政策、商业数据保密;", "(3)不得恶意刷单、虚假交易、套取分账;", "(4)配合甲方及汇付、监管部门的合规核查,提供真实资料。", ]), ("第五条 知识产权与宣传规范", [ f"5.1 “{c['miniprogram']}”商标、Logo、商品图片、文案等知识产权归甲方或权利人所有。乙方仅在推广范围内非独占使用,不得申请注册相同或近似标识。", "5.2 乙方对外宣传内容须与甲方官方信息一致;未经书面许可,不得使用“官方独家”“保底收益”等表述。", ]), ("第六条 保密条款", [ "6.1 一方对另一方的商业信息、技术信息、客户名单、分账规则细节等负有保密义务,未经书面同意不得向第三方披露,法律法规或监管机构要求除外。", "6.2 本条款在协议终止后仍有效,期限为三年。", ]), ("第七条 协议期限与终止", [ "7.1 本协议自双方签字/盖章之日起生效,有效期一年;期满前30日未书面提出终止的,自动续期一年,续期次数不限。", "7.2 出现下列情形之一,守约方可单方解除协议:", "(1)一方严重违约,经书面催告后7日内未纠正;", "(2)乙方存在虚假交易、洗钱、传销、销售假冒伪劣商品等违法行为;", "(3)乙方汇付账户被冻结、注销且30日内无法恢复;", "(4)法律法规或监管要求必须终止。", "7.3 协议终止后,对已发生且符合结算条件的交易,甲方仍应按本协议完成分账;未结算的合法收益不受影响。终止不影响违约责任及保密义务。", ]), ("第八条 违约责任", [ "8.1 乙方违反本协议给甲方造成损失的,应赔偿甲方全部直接损失及合理维权费用。", "8.2 因乙方虚假交易、违规宣传导致甲方被投诉、处罚的,乙方承担全部责任及费用。", "8.3 甲方无正当理由拖延符合结算条件的分账超过15个工作日的,可按中国人民银行同期贷款市场报价利率(LPR)向乙方支付迟延部分利息。", ]), ("第九条 不可抗力", [ "因地震、洪水、战争、政府行为、支付通道系统故障、网络攻击等不可抗力导致不能履行义务的,受影响方应及时通知对方并提供证明,相应顺延履行期限;持续超过60日的,任何一方可解除协议。", ]), ("第十条 争议解决", [ "因本协议引起的争议,双方应协商解决;协商不成的,提交甲方住所地有管辖权的人民法院诉讼解决。", ]), ("第十一条 其他", [ "11.1 本协议未尽事宜,按甲方平台公示规则执行;规则与本协议冲突的,以本协议为准。", "11.2 本协议一式两份,甲乙双方各执一份,具有同等法律效力。电子签章与原件具有同等效力(如适用)。", "11.3 附件为本协议组成部分,与正文具有同等效力:", "附件一:乙方身份证复印件/营业执照副本", "附件二:汇付进件及分账关系确认截图", "附件三:甲方当期分销/区域代理等级及比例说明(后台导出)", ]), ] for title, items in articles: add_heading_text(doc, title, level=3) for item in items: add_para(doc, item, first_line_indent=0.74, space_after=4) doc.add_page_break() add_heading_text(doc, "签署页", level=2) add_para(doc, f"甲方(盖章):{c['name']}", space_after=8) add_para(doc, "法定代表人/授权代表(签字):________________", space_after=8) add_para(doc, "日期:________年____月____日", space_after=24) add_para(doc, "乙方(签字/捺印):________________", space_after=8) add_para(doc, "(个体工商户须加盖字号公章)", space_after=8) add_para(doc, "日期:________年____月____日", space_after=24) doc.add_page_break() add_heading_text(doc, "附件四:分账授权确认书", level=2) add_para( doc, f"本人/本单位____________(汇付商户号:____________)," f"系{c['name']}(汇付主商户号:{c['huifu_id']})之推广员/区域代理。", first_line_indent=0.74, space_after=8, ) add_para( doc, f"现确认:授权甲方在“{c['miniprogram']}”商城真实交易项下,依据双方签署的《多方分账业务合作协议》" "及平台有效规则,通过汇付延时分账接口将本人/本单位应得推广服务费/区域服务费直接分账至上述汇付商户号。" "本人/本单位已开通汇付收单及结算功能,结算银行卡为本人/本单位实名账户。", first_line_indent=0.74, space_after=8, ) add_para( doc, "本授权自签署之日起生效,至双方协议终止且待结算款项全部结清之日止。", first_line_indent=0.74, space_after=16, ) add_para(doc, "授权人(签字/盖章):________________ 日期:________", space_after=8) doc.save(str(contract_output)) print(f"已生成: {contract_output}") def build_apply_guide(): _, apply_output = output_paths() c = COMPANY doc = Document() section = doc.sections[0] section.top_margin = Cm(2.54) section.bottom_margin = Cm(2.54) section.left_margin = Cm(3.17) section.right_margin = Cm(3.17) add_heading_text(doc, "汇付多方分账 40% 申请填写说明", level=1) add_para( doc, f"商户:{c['name']} | 汇付商户号:{c['huifu_id']} | 小程序:{c['miniprogram']}", align=WD_ALIGN_PARAGRAPH.CENTER, space_after=12, ) add_heading_text(doc, "一、表单字段填写", level=2) table = doc.add_table(rows=6, cols=3) table.style = "Table Grid" headers = ["字段", "填写值", "说明"] rows = [ ("分账规则来源", "接口动态规则", "与商城系统一致,支付成功后由接口 delaytrans/confirm 传入 acct_split_bunch"), ("申请分账最大比例", "40%", "见下文三段说明中的比例测算"), ("分账手续费率", "0.05%", "与进件结算配置一致"), ("分账手续费固定金额", "0.5元", "按汇付控台要求填写"), ("分账模式", "线上/其他", "线上小程序零售"), ] for j, h in enumerate(headers): table.rows[0].cells[j].text = h for run in table.rows[0].cells[j].paragraphs[0].runs: set_run_font(run, size=11, bold=True) for i, row in enumerate(rows, start=1): for j, val in enumerate(row): table.rows[i].cells[j].text = val for run in table.rows[i].cells[j].paragraphs[0].runs: set_run_font(run, size=11) doc.add_paragraph() sections = [ ("二、业务模式说明(复制到汇付表单)", ( f"我司为{c['name']}(以下简称“平台”),统一社会信用代码{c['credit_code']}," "依法持有有效营业执照,主营酒类商品零售。" f"平台运营微信小程序“{c['miniprogram']}”,向终端消费者在线销售自有及授权经销的酒类商品," "负责商品展示、订单管理、收款、发货及售后处理。\n\n" "平台采用“自营零售 + 推广分销 + 区域代理”模式开展经营,参与主体及权利义务如下:\n\n" "(1)平台(收款商户):提供商品货源、定价、仓储发货、客服及退换货服务;承担商品质量、物流及消费者权益保障责任;" f"通过汇付斗拱收单(主商户号:{c['huifu_id']}),并按订单结算规则向分账接收方支付推广服务费、区域代理服务费。\n\n" "(2)推广员(分账接收方):经平台审核后成为分销商,通过分享商品链接、发展客户促成交易;" "按平台《分销管理办法》及对应等级比例获得推广服务费;不得擅自变更价格、不得销售非平台授权商品。\n\n" "(3)区域代理(分账接收方):经平台审核并绑定省/市/区县服务区域,按订单收货地址匹配;" "负责区域内市场维护、客户咨询对接;按平台《区域代理管理办法》获得区域服务费;同一区域、同一层级仅设一家正式代理。\n\n" "(4)消费者:在小程序下单支付,由平台统一发货,享有法定及平台承诺的售后服务。\n\n" "分账金额依据订单实付金额及后台已生效的分销/区域规则计算,在消费者确认收货后执行延时分账," "单笔订单分账总额不超过订单实付金额的40%。" )), ("三、资金流向说明(复制到汇付表单)", ( "本业务资金全程通过汇付斗拱支付通道闭环流转,不涉及平台外私人账户代收代付。\n\n" f"(1)资金流入:消费者在“{c['miniprogram']}”微信小程序选购商品,通过微信支付完成付款," f"资金进入平台汇付商户号(主商户号:{c['huifu_id']})账户,交易类型为延时分账(delay_acct_flag=Y)," "支付成功后资金暂存于汇付待确认分账余额。\n\n" "(2)分账划出:订单达到分账条件(一般为确认收货或订单完成)后,平台系统调用汇付“交易确认/分账”接口," "按订单实时计算结果向各分账接收方汇付子商户号(huifu_id)划转对应金额,主要包括:" "①推广员推广服务费;②区域代理区域服务费。分账指令由系统接口动态生成,与控台静态规则无关。\n\n" "(3)平台留存:分账完成后,订单实付金额扣除支付手续费及已分出金额后的余额," f"留存在平台主商户({c['huifu_id']})汇付账户,作为货款及平台服务收入。\n\n" "(4)资金流出:各分账接收方通过其汇付子商户账户,按汇付结算规则(T+1/D+1)" "提现至其本人实名绑定的银行账户;平台主商户按同样规则将留存资金结算至公司对公账户。\n\n" "(5)退款处理:发生退款时,按汇付及微信平台规则原路退回消费者;" "已分账部分按平台制度及接口能力做回退或线下追偿处理,确保资金账实相符。\n\n" "全部账户均为汇付体系内商户号或银行账户,可逐笔追溯、对账。" )), ("四、功能开通用途说明(复制到汇付表单)", ( f"我司({c['name']},汇付商户号:{c['huifu_id']})申请开通汇付延时分账功能并将最大分账比例调整至40%,用途如下:\n\n" f"(1)业务场景:{c['miniprogram']}商城存在推广分销(一至三级)及省/市/区县区域代理两类合作方," "单笔订单可能同时产生推广服务费与区域服务费,需在消费者确认收货后自动、准确结算至各合作方汇付子商户," "避免人工转账效率低、差错率高及合规风险。\n\n" "(2)使用方式:支付环节开启延时分账;确认收货后,由商城后台系统调用汇付接口," "依据订单绑定的推广关系、收货地址及商品分账规则,动态计算各接收方金额并发起分账。" "分账接收方须事先完成汇付个人/商户进件并与主商户建立分账关系。\n\n" "(3)分账对象类型:已签约的注册推广员、已审核通过的区域代理," "均为与平台签署《多方分账业务合作协议》的独立民事主体。\n\n" "(4)申请40%的原因:在三级分销叠加及区域代理“独占/级差”配置下," "单笔订单理论分账比例峰值可能接近35%—38%;申请40%作为系统上限,用于覆盖规则调整余量。" "实际运行中,单笔订单平均分账比例约15%—25%,平台主商户留存比例通常不低于60%。\n\n" "(5)合规承诺:分账基于真实交易及已签署协议,不用于洗钱、套现、资金池归集等违规用途;" "分账材料与业务实际一致,接受汇付及监管核查。" )), ] for title, body in sections: add_heading_text(doc, title, level=2) for para in body.split("\n\n"): add_para(doc, para, first_line_indent=0.74, space_after=6) add_heading_text(doc, "五、附件上传建议", level=2) for item in [ f"1. 《多方分账业务合作协议》盖章扫描件(至少 1—2 份已签约样本,甲方:{c['name']});", "2. 平台营业执照副本;", f"3. 小程序“{c['miniprogram']}”首页及订单流程截图;", "4. 分销/区域代理管理制度或后台规则截图。", ]: add_para(doc, item, space_after=4) add_heading_text(doc, "六、提交前核对", level=2) for item in [ "□ 控台 rule_origin=01(接口发起),与商城配置一致", f"□ 主商户 {c['huifu_id']} 已开通延时分账", "□ 表单比例 40% ≥ 商城 split_max_rate 配置", f"□ 三份说明中公司名称、信用代码、商户号与营业执照及汇付控台一致", "□ 已备至少一份与分账接收方签署的盖章协议", ]: add_para(doc, item, space_after=4) doc.save(str(apply_output)) print(f"已生成: {apply_output}") if __name__ == "__main__": build() build_apply_guide()