def apply_cancel_signing(self, contract_id=None, plan_id=None, contract_code=None,<EOL>contract_termination_remark=None, version="<STR_LIT:1.0>"):
if not (contract_id or (plan_id and contract_code)):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>data = {<EOL>"<STR_LIT>": self.appid,<EOL>"<STR_LIT>": self.mch_id,<EOL>"<STR_LIT>": plan_id,<EOL>"<STR_LIT>": contract_code,<EOL>"<STR_LIT>": contract_id,<EOL>"<STR_LIT>": contract_termination_remark,<EOL>"<STR_LIT:version>": version,<EOL>"<STR_LIT>": None,<EOL>}<EOL>return self._post("<STR_LIT>", data=data)<EOL>
申请解约

https://pay.weixin.qq.com/wiki/doc/api/pap.php?chapter=18_4&index=6

:param contract_id: 合同ID
:param plan_id: 模板ID
:param contract_code: 合同号
:param contract_termination_remark: 解约原因
:param version: 版本号
:return: