antchain-bot 1.10.35__py3-none-any.whl → 1.11.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6849,6 +6849,58 @@ class ProductKeyPageResponse(TeaModel):
6849
6849
  return self
6850
6850
 
6851
6851
 
6852
+ class SubMerchantParams(TeaModel):
6853
+ def __init__(
6854
+ self,
6855
+ sub_merchant_id: str = None,
6856
+ sub_merchant_name: str = None,
6857
+ sub_merchant_service_name: str = None,
6858
+ sub_merchant_service_description: str = None,
6859
+ ):
6860
+ # 子商户的商户id
6861
+ self.sub_merchant_id = sub_merchant_id
6862
+ # 子商户的商户名称
6863
+ self.sub_merchant_name = sub_merchant_name
6864
+ # 子商户的服务名称
6865
+ self.sub_merchant_service_name = sub_merchant_service_name
6866
+ # 子商户的服务描述
6867
+ self.sub_merchant_service_description = sub_merchant_service_description
6868
+
6869
+ def validate(self):
6870
+ self.validate_required(self.sub_merchant_id, 'sub_merchant_id')
6871
+ self.validate_required(self.sub_merchant_name, 'sub_merchant_name')
6872
+ self.validate_required(self.sub_merchant_service_name, 'sub_merchant_service_name')
6873
+ self.validate_required(self.sub_merchant_service_description, 'sub_merchant_service_description')
6874
+
6875
+ def to_map(self):
6876
+ _map = super().to_map()
6877
+ if _map is not None:
6878
+ return _map
6879
+
6880
+ result = dict()
6881
+ if self.sub_merchant_id is not None:
6882
+ result['sub_merchant_id'] = self.sub_merchant_id
6883
+ if self.sub_merchant_name is not None:
6884
+ result['sub_merchant_name'] = self.sub_merchant_name
6885
+ if self.sub_merchant_service_name is not None:
6886
+ result['sub_merchant_service_name'] = self.sub_merchant_service_name
6887
+ if self.sub_merchant_service_description is not None:
6888
+ result['sub_merchant_service_description'] = self.sub_merchant_service_description
6889
+ return result
6890
+
6891
+ def from_map(self, m: dict = None):
6892
+ m = m or dict()
6893
+ if m.get('sub_merchant_id') is not None:
6894
+ self.sub_merchant_id = m.get('sub_merchant_id')
6895
+ if m.get('sub_merchant_name') is not None:
6896
+ self.sub_merchant_name = m.get('sub_merchant_name')
6897
+ if m.get('sub_merchant_service_name') is not None:
6898
+ self.sub_merchant_service_name = m.get('sub_merchant_service_name')
6899
+ if m.get('sub_merchant_service_description') is not None:
6900
+ self.sub_merchant_service_description = m.get('sub_merchant_service_description')
6901
+ return self
6902
+
6903
+
6852
6904
  class ChainModelResult(TeaModel):
6853
6905
  def __init__(
6854
6906
  self,
@@ -21904,6 +21956,938 @@ class PublishDevicecorpThingmodelResponse(TeaModel):
21904
21956
  return self
21905
21957
 
21906
21958
 
21959
+ class SignDigitalkeyWithholdRequest(TeaModel):
21960
+ def __init__(
21961
+ self,
21962
+ auth_token: str = None,
21963
+ product_instance_id: str = None,
21964
+ personal_product_code: str = None,
21965
+ product_code: str = None,
21966
+ channel: str = None,
21967
+ return_url: str = None,
21968
+ external_logon_id: str = None,
21969
+ alipay_user_id: str = None,
21970
+ sign_scene: str = None,
21971
+ external_agreement_no: str = None,
21972
+ sub_merchant: str = None,
21973
+ sign_validity_period: str = None,
21974
+ effect_time: int = None,
21975
+ ):
21976
+ # OAuth模式下的授权token
21977
+ self.auth_token = auth_token
21978
+ self.product_instance_id = product_instance_id
21979
+ # 个人签约产品码
21980
+ self.personal_product_code = personal_product_code
21981
+ # 销售产品码
21982
+ self.product_code = product_code
21983
+ # 请按当前接入的方式进行填充,且输入值必须为文档中的参数取值范围。 扫码或者短信页面签约需要拼装http的请求地址访问中间页面,钱包h5页面签约可直接拼接scheme的请求地址
21984
+ self.channel = channel
21985
+ # 支付宝App主动回跳商户App里指定的页面 http/https 路径。建议商户使用 https。
21986
+ self.return_url = return_url
21987
+ # 用户在商户网站的登录账号,用于在签约页面展示
21988
+ self.external_logon_id = external_logon_id
21989
+ # 支付宝用户ID
21990
+ self.alipay_user_id = alipay_user_id
21991
+ # 商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 格式规则:支持大写小写字母和数字,最长32位。 商户系统按需自定义传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值
21992
+ self.sign_scene = sign_scene
21993
+ # 商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 格式规则:支持大写小写字母和数字,最长32位。 商户系统按需自定义传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值
21994
+ self.external_agreement_no = external_agreement_no
21995
+ # 子商户信息
21996
+ self.sub_merchant = sub_merchant
21997
+ # 当前用户签约请求的协议有效周期。 整形数字加上时间单位的协议有效期,从发起签约请求的时间开始算起。 目前支持的时间单位: 1. d:天 2. m:月 如果未传入,默认为长期有效。
21998
+ self.sign_validity_period = sign_validity_period
21999
+ # 签约有效时间限制,单位是秒,有效范围是0-86400,商户传入此字段会用商户传入的值否则使用支付宝侧默认值,在有效时间外进行签约,会进行安全拦截;(备注:此字段适用于需要开通安全防控的商户,且依赖商户传入生成签约时的时间戳字段timestamp)
22000
+ self.effect_time = effect_time
22001
+
22002
+ def validate(self):
22003
+ self.validate_required(self.personal_product_code, 'personal_product_code')
22004
+ self.validate_required(self.product_code, 'product_code')
22005
+ self.validate_required(self.channel, 'channel')
22006
+ self.validate_required(self.return_url, 'return_url')
22007
+ self.validate_required(self.external_logon_id, 'external_logon_id')
22008
+ self.validate_required(self.sign_scene, 'sign_scene')
22009
+ self.validate_required(self.external_agreement_no, 'external_agreement_no')
22010
+
22011
+ def to_map(self):
22012
+ _map = super().to_map()
22013
+ if _map is not None:
22014
+ return _map
22015
+
22016
+ result = dict()
22017
+ if self.auth_token is not None:
22018
+ result['auth_token'] = self.auth_token
22019
+ if self.product_instance_id is not None:
22020
+ result['product_instance_id'] = self.product_instance_id
22021
+ if self.personal_product_code is not None:
22022
+ result['personal_product_code'] = self.personal_product_code
22023
+ if self.product_code is not None:
22024
+ result['product_code'] = self.product_code
22025
+ if self.channel is not None:
22026
+ result['channel'] = self.channel
22027
+ if self.return_url is not None:
22028
+ result['return_url'] = self.return_url
22029
+ if self.external_logon_id is not None:
22030
+ result['external_logon_id'] = self.external_logon_id
22031
+ if self.alipay_user_id is not None:
22032
+ result['alipay_user_id'] = self.alipay_user_id
22033
+ if self.sign_scene is not None:
22034
+ result['sign_scene'] = self.sign_scene
22035
+ if self.external_agreement_no is not None:
22036
+ result['external_agreement_no'] = self.external_agreement_no
22037
+ if self.sub_merchant is not None:
22038
+ result['sub_merchant'] = self.sub_merchant
22039
+ if self.sign_validity_period is not None:
22040
+ result['sign_validity_period'] = self.sign_validity_period
22041
+ if self.effect_time is not None:
22042
+ result['effect_time'] = self.effect_time
22043
+ return result
22044
+
22045
+ def from_map(self, m: dict = None):
22046
+ m = m or dict()
22047
+ if m.get('auth_token') is not None:
22048
+ self.auth_token = m.get('auth_token')
22049
+ if m.get('product_instance_id') is not None:
22050
+ self.product_instance_id = m.get('product_instance_id')
22051
+ if m.get('personal_product_code') is not None:
22052
+ self.personal_product_code = m.get('personal_product_code')
22053
+ if m.get('product_code') is not None:
22054
+ self.product_code = m.get('product_code')
22055
+ if m.get('channel') is not None:
22056
+ self.channel = m.get('channel')
22057
+ if m.get('return_url') is not None:
22058
+ self.return_url = m.get('return_url')
22059
+ if m.get('external_logon_id') is not None:
22060
+ self.external_logon_id = m.get('external_logon_id')
22061
+ if m.get('alipay_user_id') is not None:
22062
+ self.alipay_user_id = m.get('alipay_user_id')
22063
+ if m.get('sign_scene') is not None:
22064
+ self.sign_scene = m.get('sign_scene')
22065
+ if m.get('external_agreement_no') is not None:
22066
+ self.external_agreement_no = m.get('external_agreement_no')
22067
+ if m.get('sub_merchant') is not None:
22068
+ self.sub_merchant = m.get('sub_merchant')
22069
+ if m.get('sign_validity_period') is not None:
22070
+ self.sign_validity_period = m.get('sign_validity_period')
22071
+ if m.get('effect_time') is not None:
22072
+ self.effect_time = m.get('effect_time')
22073
+ return self
22074
+
22075
+
22076
+ class SignDigitalkeyWithholdResponse(TeaModel):
22077
+ def __init__(
22078
+ self,
22079
+ req_msg_id: str = None,
22080
+ result_code: str = None,
22081
+ result_msg: str = None,
22082
+ sub_code: str = None,
22083
+ sub_msg: str = None,
22084
+ data: str = None,
22085
+ ):
22086
+ # 请求唯一ID,用于链路跟踪和问题排查
22087
+ self.req_msg_id = req_msg_id
22088
+ # 结果码,一般OK表示调用成功
22089
+ self.result_code = result_code
22090
+ # 异常信息的文本描述
22091
+ self.result_msg = result_msg
22092
+ # 明细返回码
22093
+ self.sub_code = sub_code
22094
+ # 明细返回码描述
22095
+ self.sub_msg = sub_msg
22096
+ # 生成的签约链接地址
22097
+ self.data = data
22098
+
22099
+ def validate(self):
22100
+ pass
22101
+
22102
+ def to_map(self):
22103
+ _map = super().to_map()
22104
+ if _map is not None:
22105
+ return _map
22106
+
22107
+ result = dict()
22108
+ if self.req_msg_id is not None:
22109
+ result['req_msg_id'] = self.req_msg_id
22110
+ if self.result_code is not None:
22111
+ result['result_code'] = self.result_code
22112
+ if self.result_msg is not None:
22113
+ result['result_msg'] = self.result_msg
22114
+ if self.sub_code is not None:
22115
+ result['sub_code'] = self.sub_code
22116
+ if self.sub_msg is not None:
22117
+ result['sub_msg'] = self.sub_msg
22118
+ if self.data is not None:
22119
+ result['data'] = self.data
22120
+ return result
22121
+
22122
+ def from_map(self, m: dict = None):
22123
+ m = m or dict()
22124
+ if m.get('req_msg_id') is not None:
22125
+ self.req_msg_id = m.get('req_msg_id')
22126
+ if m.get('result_code') is not None:
22127
+ self.result_code = m.get('result_code')
22128
+ if m.get('result_msg') is not None:
22129
+ self.result_msg = m.get('result_msg')
22130
+ if m.get('sub_code') is not None:
22131
+ self.sub_code = m.get('sub_code')
22132
+ if m.get('sub_msg') is not None:
22133
+ self.sub_msg = m.get('sub_msg')
22134
+ if m.get('data') is not None:
22135
+ self.data = m.get('data')
22136
+ return self
22137
+
22138
+
22139
+ class UnbindDigitalkeyWithholdRequest(TeaModel):
22140
+ def __init__(
22141
+ self,
22142
+ auth_token: str = None,
22143
+ product_instance_id: str = None,
22144
+ alipay_user_id: str = None,
22145
+ personal_product_code: str = None,
22146
+ sign_scene: str = None,
22147
+ external_agreement_no: str = None,
22148
+ ):
22149
+ # OAuth模式下的授权token
22150
+ self.auth_token = auth_token
22151
+ self.product_instance_id = product_instance_id
22152
+ # 用户的支付宝账号对应的支付宝唯一用户号,以 2088 开头的 16 位纯数字组成。
22153
+ self.alipay_user_id = alipay_user_id
22154
+ # 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码,解约时传入签约时的产品码,销售产品码,商户代扣场景固定为 GENERAL_WITHHOLDING_P。
22155
+ self.personal_product_code = personal_product_code
22156
+ # 签约协议场景,商户和支付宝签约时确定,解约时,传入签约指定的场景信息。
22157
+ self.sign_scene = sign_scene
22158
+ # 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一),传入签约时传入的签约号。
22159
+ self.external_agreement_no = external_agreement_no
22160
+
22161
+ def validate(self):
22162
+ self.validate_required(self.alipay_user_id, 'alipay_user_id')
22163
+ self.validate_required(self.personal_product_code, 'personal_product_code')
22164
+ self.validate_required(self.sign_scene, 'sign_scene')
22165
+ self.validate_required(self.external_agreement_no, 'external_agreement_no')
22166
+
22167
+ def to_map(self):
22168
+ _map = super().to_map()
22169
+ if _map is not None:
22170
+ return _map
22171
+
22172
+ result = dict()
22173
+ if self.auth_token is not None:
22174
+ result['auth_token'] = self.auth_token
22175
+ if self.product_instance_id is not None:
22176
+ result['product_instance_id'] = self.product_instance_id
22177
+ if self.alipay_user_id is not None:
22178
+ result['alipay_user_id'] = self.alipay_user_id
22179
+ if self.personal_product_code is not None:
22180
+ result['personal_product_code'] = self.personal_product_code
22181
+ if self.sign_scene is not None:
22182
+ result['sign_scene'] = self.sign_scene
22183
+ if self.external_agreement_no is not None:
22184
+ result['external_agreement_no'] = self.external_agreement_no
22185
+ return result
22186
+
22187
+ def from_map(self, m: dict = None):
22188
+ m = m or dict()
22189
+ if m.get('auth_token') is not None:
22190
+ self.auth_token = m.get('auth_token')
22191
+ if m.get('product_instance_id') is not None:
22192
+ self.product_instance_id = m.get('product_instance_id')
22193
+ if m.get('alipay_user_id') is not None:
22194
+ self.alipay_user_id = m.get('alipay_user_id')
22195
+ if m.get('personal_product_code') is not None:
22196
+ self.personal_product_code = m.get('personal_product_code')
22197
+ if m.get('sign_scene') is not None:
22198
+ self.sign_scene = m.get('sign_scene')
22199
+ if m.get('external_agreement_no') is not None:
22200
+ self.external_agreement_no = m.get('external_agreement_no')
22201
+ return self
22202
+
22203
+
22204
+ class UnbindDigitalkeyWithholdResponse(TeaModel):
22205
+ def __init__(
22206
+ self,
22207
+ req_msg_id: str = None,
22208
+ result_code: str = None,
22209
+ result_msg: str = None,
22210
+ sub_code: str = None,
22211
+ sub_msg: str = None,
22212
+ ):
22213
+ # 请求唯一ID,用于链路跟踪和问题排查
22214
+ self.req_msg_id = req_msg_id
22215
+ # 结果码,一般OK表示调用成功
22216
+ self.result_code = result_code
22217
+ # 异常信息的文本描述
22218
+ self.result_msg = result_msg
22219
+ # 明细返回码
22220
+ self.sub_code = sub_code
22221
+ # 明细返回码描述
22222
+ self.sub_msg = sub_msg
22223
+
22224
+ def validate(self):
22225
+ pass
22226
+
22227
+ def to_map(self):
22228
+ _map = super().to_map()
22229
+ if _map is not None:
22230
+ return _map
22231
+
22232
+ result = dict()
22233
+ if self.req_msg_id is not None:
22234
+ result['req_msg_id'] = self.req_msg_id
22235
+ if self.result_code is not None:
22236
+ result['result_code'] = self.result_code
22237
+ if self.result_msg is not None:
22238
+ result['result_msg'] = self.result_msg
22239
+ if self.sub_code is not None:
22240
+ result['sub_code'] = self.sub_code
22241
+ if self.sub_msg is not None:
22242
+ result['sub_msg'] = self.sub_msg
22243
+ return result
22244
+
22245
+ def from_map(self, m: dict = None):
22246
+ m = m or dict()
22247
+ if m.get('req_msg_id') is not None:
22248
+ self.req_msg_id = m.get('req_msg_id')
22249
+ if m.get('result_code') is not None:
22250
+ self.result_code = m.get('result_code')
22251
+ if m.get('result_msg') is not None:
22252
+ self.result_msg = m.get('result_msg')
22253
+ if m.get('sub_code') is not None:
22254
+ self.sub_code = m.get('sub_code')
22255
+ if m.get('sub_msg') is not None:
22256
+ self.sub_msg = m.get('sub_msg')
22257
+ return self
22258
+
22259
+
22260
+ class PayDigitalkeyWithholdRequest(TeaModel):
22261
+ def __init__(
22262
+ self,
22263
+ auth_token: str = None,
22264
+ product_instance_id: str = None,
22265
+ out_trade_no: str = None,
22266
+ subject: str = None,
22267
+ alipay_user_id: str = None,
22268
+ product_code: str = None,
22269
+ total_amount: int = None,
22270
+ deduct_permission: str = None,
22271
+ agreement_no: str = None,
22272
+ timeout_express: str = None,
22273
+ async_type: str = None,
22274
+ ):
22275
+ # OAuth模式下的授权token
22276
+ self.auth_token = auth_token
22277
+ self.product_instance_id = product_instance_id
22278
+ # 商户订单号,需要保证不重复
22279
+ self.out_trade_no = out_trade_no
22280
+ # 订单标题
22281
+ self.subject = subject
22282
+ # 签约时支付宝返回的用户ID
22283
+ self.alipay_user_id = alipay_user_id
22284
+ # 销售产品码,商户代扣场景固定为GENERAL_WITHHOLDING
22285
+ self.product_code = product_code
22286
+ # 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
22287
+ self.total_amount = total_amount
22288
+ # 商户代扣扣款许可
22289
+ self.deduct_permission = deduct_permission
22290
+ # 代扣协议号, 对应于签约时,支付宝返回的协议
22291
+ self.agreement_no = agreement_no
22292
+ # 该笔订单允许的最晚付款时间,逾期将关闭交易,超时关闭交易无法继续付款。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天 该参数数值不接受小数点, 如:1.5 h,可转换为 90m。
22293
+ self.timeout_express = timeout_express
22294
+ # 异步支付类型
22295
+ self.async_type = async_type
22296
+
22297
+ def validate(self):
22298
+ self.validate_required(self.out_trade_no, 'out_trade_no')
22299
+ self.validate_required(self.subject, 'subject')
22300
+ self.validate_required(self.alipay_user_id, 'alipay_user_id')
22301
+ self.validate_required(self.product_code, 'product_code')
22302
+ self.validate_required(self.total_amount, 'total_amount')
22303
+ self.validate_required(self.agreement_no, 'agreement_no')
22304
+ self.validate_required(self.async_type, 'async_type')
22305
+
22306
+ def to_map(self):
22307
+ _map = super().to_map()
22308
+ if _map is not None:
22309
+ return _map
22310
+
22311
+ result = dict()
22312
+ if self.auth_token is not None:
22313
+ result['auth_token'] = self.auth_token
22314
+ if self.product_instance_id is not None:
22315
+ result['product_instance_id'] = self.product_instance_id
22316
+ if self.out_trade_no is not None:
22317
+ result['out_trade_no'] = self.out_trade_no
22318
+ if self.subject is not None:
22319
+ result['subject'] = self.subject
22320
+ if self.alipay_user_id is not None:
22321
+ result['alipay_user_id'] = self.alipay_user_id
22322
+ if self.product_code is not None:
22323
+ result['product_code'] = self.product_code
22324
+ if self.total_amount is not None:
22325
+ result['total_amount'] = self.total_amount
22326
+ if self.deduct_permission is not None:
22327
+ result['deduct_permission'] = self.deduct_permission
22328
+ if self.agreement_no is not None:
22329
+ result['agreement_no'] = self.agreement_no
22330
+ if self.timeout_express is not None:
22331
+ result['timeout_express'] = self.timeout_express
22332
+ if self.async_type is not None:
22333
+ result['async_type'] = self.async_type
22334
+ return result
22335
+
22336
+ def from_map(self, m: dict = None):
22337
+ m = m or dict()
22338
+ if m.get('auth_token') is not None:
22339
+ self.auth_token = m.get('auth_token')
22340
+ if m.get('product_instance_id') is not None:
22341
+ self.product_instance_id = m.get('product_instance_id')
22342
+ if m.get('out_trade_no') is not None:
22343
+ self.out_trade_no = m.get('out_trade_no')
22344
+ if m.get('subject') is not None:
22345
+ self.subject = m.get('subject')
22346
+ if m.get('alipay_user_id') is not None:
22347
+ self.alipay_user_id = m.get('alipay_user_id')
22348
+ if m.get('product_code') is not None:
22349
+ self.product_code = m.get('product_code')
22350
+ if m.get('total_amount') is not None:
22351
+ self.total_amount = m.get('total_amount')
22352
+ if m.get('deduct_permission') is not None:
22353
+ self.deduct_permission = m.get('deduct_permission')
22354
+ if m.get('agreement_no') is not None:
22355
+ self.agreement_no = m.get('agreement_no')
22356
+ if m.get('timeout_express') is not None:
22357
+ self.timeout_express = m.get('timeout_express')
22358
+ if m.get('async_type') is not None:
22359
+ self.async_type = m.get('async_type')
22360
+ return self
22361
+
22362
+
22363
+ class PayDigitalkeyWithholdResponse(TeaModel):
22364
+ def __init__(
22365
+ self,
22366
+ req_msg_id: str = None,
22367
+ result_code: str = None,
22368
+ result_msg: str = None,
22369
+ sub_msg: str = None,
22370
+ sub_code: str = None,
22371
+ ):
22372
+ # 请求唯一ID,用于链路跟踪和问题排查
22373
+ self.req_msg_id = req_msg_id
22374
+ # 结果码,一般OK表示调用成功
22375
+ self.result_code = result_code
22376
+ # 异常信息的文本描述
22377
+ self.result_msg = result_msg
22378
+ # 明细返回码描述
22379
+ self.sub_msg = sub_msg
22380
+ # 明细返回码
22381
+ self.sub_code = sub_code
22382
+
22383
+ def validate(self):
22384
+ pass
22385
+
22386
+ def to_map(self):
22387
+ _map = super().to_map()
22388
+ if _map is not None:
22389
+ return _map
22390
+
22391
+ result = dict()
22392
+ if self.req_msg_id is not None:
22393
+ result['req_msg_id'] = self.req_msg_id
22394
+ if self.result_code is not None:
22395
+ result['result_code'] = self.result_code
22396
+ if self.result_msg is not None:
22397
+ result['result_msg'] = self.result_msg
22398
+ if self.sub_msg is not None:
22399
+ result['sub_msg'] = self.sub_msg
22400
+ if self.sub_code is not None:
22401
+ result['sub_code'] = self.sub_code
22402
+ return result
22403
+
22404
+ def from_map(self, m: dict = None):
22405
+ m = m or dict()
22406
+ if m.get('req_msg_id') is not None:
22407
+ self.req_msg_id = m.get('req_msg_id')
22408
+ if m.get('result_code') is not None:
22409
+ self.result_code = m.get('result_code')
22410
+ if m.get('result_msg') is not None:
22411
+ self.result_msg = m.get('result_msg')
22412
+ if m.get('sub_msg') is not None:
22413
+ self.sub_msg = m.get('sub_msg')
22414
+ if m.get('sub_code') is not None:
22415
+ self.sub_code = m.get('sub_code')
22416
+ return self
22417
+
22418
+
22419
+ class RefuseDigitalkeyWithholdRequest(TeaModel):
22420
+ def __init__(
22421
+ self,
22422
+ auth_token: str = None,
22423
+ product_instance_id: str = None,
22424
+ out_trade_no: str = None,
22425
+ refund_amount: int = None,
22426
+ out_request_no: str = None,
22427
+ ):
22428
+ # OAuth模式下的授权token
22429
+ self.auth_token = auth_token
22430
+ self.product_instance_id = product_instance_id
22431
+ # 订单支付时传入的商户订单号,不能和 trade_no同时为空。
22432
+ self.out_trade_no = out_trade_no
22433
+ # 需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数
22434
+ self.refund_amount = refund_amount
22435
+ # 标识一次退款请求,同一笔交易多次退款需要保证唯一。
22436
+ self.out_request_no = out_request_no
22437
+
22438
+ def validate(self):
22439
+ self.validate_required(self.out_trade_no, 'out_trade_no')
22440
+ self.validate_required(self.refund_amount, 'refund_amount')
22441
+ self.validate_required(self.out_request_no, 'out_request_no')
22442
+
22443
+ def to_map(self):
22444
+ _map = super().to_map()
22445
+ if _map is not None:
22446
+ return _map
22447
+
22448
+ result = dict()
22449
+ if self.auth_token is not None:
22450
+ result['auth_token'] = self.auth_token
22451
+ if self.product_instance_id is not None:
22452
+ result['product_instance_id'] = self.product_instance_id
22453
+ if self.out_trade_no is not None:
22454
+ result['out_trade_no'] = self.out_trade_no
22455
+ if self.refund_amount is not None:
22456
+ result['refund_amount'] = self.refund_amount
22457
+ if self.out_request_no is not None:
22458
+ result['out_request_no'] = self.out_request_no
22459
+ return result
22460
+
22461
+ def from_map(self, m: dict = None):
22462
+ m = m or dict()
22463
+ if m.get('auth_token') is not None:
22464
+ self.auth_token = m.get('auth_token')
22465
+ if m.get('product_instance_id') is not None:
22466
+ self.product_instance_id = m.get('product_instance_id')
22467
+ if m.get('out_trade_no') is not None:
22468
+ self.out_trade_no = m.get('out_trade_no')
22469
+ if m.get('refund_amount') is not None:
22470
+ self.refund_amount = m.get('refund_amount')
22471
+ if m.get('out_request_no') is not None:
22472
+ self.out_request_no = m.get('out_request_no')
22473
+ return self
22474
+
22475
+
22476
+ class RefuseDigitalkeyWithholdResponse(TeaModel):
22477
+ def __init__(
22478
+ self,
22479
+ req_msg_id: str = None,
22480
+ result_code: str = None,
22481
+ result_msg: str = None,
22482
+ sub_code: str = None,
22483
+ sub_msg: str = None,
22484
+ data: str = None,
22485
+ ):
22486
+ # 请求唯一ID,用于链路跟踪和问题排查
22487
+ self.req_msg_id = req_msg_id
22488
+ # 结果码,一般OK表示调用成功
22489
+ self.result_code = result_code
22490
+ # 异常信息的文本描述
22491
+ self.result_msg = result_msg
22492
+ # 明细返回码
22493
+ self.sub_code = sub_code
22494
+ # 明细返回码描述
22495
+ self.sub_msg = sub_msg
22496
+ # 退款返回信息
22497
+ self.data = data
22498
+
22499
+ def validate(self):
22500
+ pass
22501
+
22502
+ def to_map(self):
22503
+ _map = super().to_map()
22504
+ if _map is not None:
22505
+ return _map
22506
+
22507
+ result = dict()
22508
+ if self.req_msg_id is not None:
22509
+ result['req_msg_id'] = self.req_msg_id
22510
+ if self.result_code is not None:
22511
+ result['result_code'] = self.result_code
22512
+ if self.result_msg is not None:
22513
+ result['result_msg'] = self.result_msg
22514
+ if self.sub_code is not None:
22515
+ result['sub_code'] = self.sub_code
22516
+ if self.sub_msg is not None:
22517
+ result['sub_msg'] = self.sub_msg
22518
+ if self.data is not None:
22519
+ result['data'] = self.data
22520
+ return result
22521
+
22522
+ def from_map(self, m: dict = None):
22523
+ m = m or dict()
22524
+ if m.get('req_msg_id') is not None:
22525
+ self.req_msg_id = m.get('req_msg_id')
22526
+ if m.get('result_code') is not None:
22527
+ self.result_code = m.get('result_code')
22528
+ if m.get('result_msg') is not None:
22529
+ self.result_msg = m.get('result_msg')
22530
+ if m.get('sub_code') is not None:
22531
+ self.sub_code = m.get('sub_code')
22532
+ if m.get('sub_msg') is not None:
22533
+ self.sub_msg = m.get('sub_msg')
22534
+ if m.get('data') is not None:
22535
+ self.data = m.get('data')
22536
+ return self
22537
+
22538
+
22539
+ class QueryDigitalkeyWithholdRequest(TeaModel):
22540
+ def __init__(
22541
+ self,
22542
+ auth_token: str = None,
22543
+ product_instance_id: str = None,
22544
+ alipay_user_id: str = None,
22545
+ personal_product_code: str = None,
22546
+ sign_scene: str = None,
22547
+ external_agreement_no: str = None,
22548
+ ):
22549
+ # OAuth模式下的授权token
22550
+ self.auth_token = auth_token
22551
+ self.product_instance_id = product_instance_id
22552
+ # 用户的支付宝账号对应的支付宝唯一用户号,以 2088 开头的 16 位纯数字组成。
22553
+ self.alipay_user_id = alipay_user_id
22554
+ # 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码,解约时传入签约时的产品码,销售产品码,商户代扣场景固定为 GENERAL_WITHHOLDING_P。
22555
+ self.personal_product_code = personal_product_code
22556
+ # 签约协议场景,商户和支付宝签约时确定,解约时,传入签约指定的场景信息。
22557
+ self.sign_scene = sign_scene
22558
+ # 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一),传入签约时传入的签约号。
22559
+ self.external_agreement_no = external_agreement_no
22560
+
22561
+ def validate(self):
22562
+ self.validate_required(self.alipay_user_id, 'alipay_user_id')
22563
+ self.validate_required(self.personal_product_code, 'personal_product_code')
22564
+ self.validate_required(self.sign_scene, 'sign_scene')
22565
+ self.validate_required(self.external_agreement_no, 'external_agreement_no')
22566
+
22567
+ def to_map(self):
22568
+ _map = super().to_map()
22569
+ if _map is not None:
22570
+ return _map
22571
+
22572
+ result = dict()
22573
+ if self.auth_token is not None:
22574
+ result['auth_token'] = self.auth_token
22575
+ if self.product_instance_id is not None:
22576
+ result['product_instance_id'] = self.product_instance_id
22577
+ if self.alipay_user_id is not None:
22578
+ result['alipay_user_id'] = self.alipay_user_id
22579
+ if self.personal_product_code is not None:
22580
+ result['personal_product_code'] = self.personal_product_code
22581
+ if self.sign_scene is not None:
22582
+ result['sign_scene'] = self.sign_scene
22583
+ if self.external_agreement_no is not None:
22584
+ result['external_agreement_no'] = self.external_agreement_no
22585
+ return result
22586
+
22587
+ def from_map(self, m: dict = None):
22588
+ m = m or dict()
22589
+ if m.get('auth_token') is not None:
22590
+ self.auth_token = m.get('auth_token')
22591
+ if m.get('product_instance_id') is not None:
22592
+ self.product_instance_id = m.get('product_instance_id')
22593
+ if m.get('alipay_user_id') is not None:
22594
+ self.alipay_user_id = m.get('alipay_user_id')
22595
+ if m.get('personal_product_code') is not None:
22596
+ self.personal_product_code = m.get('personal_product_code')
22597
+ if m.get('sign_scene') is not None:
22598
+ self.sign_scene = m.get('sign_scene')
22599
+ if m.get('external_agreement_no') is not None:
22600
+ self.external_agreement_no = m.get('external_agreement_no')
22601
+ return self
22602
+
22603
+
22604
+ class QueryDigitalkeyWithholdResponse(TeaModel):
22605
+ def __init__(
22606
+ self,
22607
+ req_msg_id: str = None,
22608
+ result_code: str = None,
22609
+ result_msg: str = None,
22610
+ sub_code: str = None,
22611
+ sub_msg: str = None,
22612
+ data: str = None,
22613
+ ):
22614
+ # 请求唯一ID,用于链路跟踪和问题排查
22615
+ self.req_msg_id = req_msg_id
22616
+ # 结果码,一般OK表示调用成功
22617
+ self.result_code = result_code
22618
+ # 异常信息的文本描述
22619
+ self.result_msg = result_msg
22620
+ # 明细返回码
22621
+ self.sub_code = sub_code
22622
+ # 明细返回码描述
22623
+ self.sub_msg = sub_msg
22624
+ # 协议查询返回信息
22625
+ self.data = data
22626
+
22627
+ def validate(self):
22628
+ pass
22629
+
22630
+ def to_map(self):
22631
+ _map = super().to_map()
22632
+ if _map is not None:
22633
+ return _map
22634
+
22635
+ result = dict()
22636
+ if self.req_msg_id is not None:
22637
+ result['req_msg_id'] = self.req_msg_id
22638
+ if self.result_code is not None:
22639
+ result['result_code'] = self.result_code
22640
+ if self.result_msg is not None:
22641
+ result['result_msg'] = self.result_msg
22642
+ if self.sub_code is not None:
22643
+ result['sub_code'] = self.sub_code
22644
+ if self.sub_msg is not None:
22645
+ result['sub_msg'] = self.sub_msg
22646
+ if self.data is not None:
22647
+ result['data'] = self.data
22648
+ return result
22649
+
22650
+ def from_map(self, m: dict = None):
22651
+ m = m or dict()
22652
+ if m.get('req_msg_id') is not None:
22653
+ self.req_msg_id = m.get('req_msg_id')
22654
+ if m.get('result_code') is not None:
22655
+ self.result_code = m.get('result_code')
22656
+ if m.get('result_msg') is not None:
22657
+ self.result_msg = m.get('result_msg')
22658
+ if m.get('sub_code') is not None:
22659
+ self.sub_code = m.get('sub_code')
22660
+ if m.get('sub_msg') is not None:
22661
+ self.sub_msg = m.get('sub_msg')
22662
+ if m.get('data') is not None:
22663
+ self.data = m.get('data')
22664
+ return self
22665
+
22666
+
22667
+ class CancelDigitalkeyWithholdRequest(TeaModel):
22668
+ def __init__(
22669
+ self,
22670
+ auth_token: str = None,
22671
+ product_instance_id: str = None,
22672
+ out_trade_no: str = None,
22673
+ ):
22674
+ # OAuth模式下的授权token
22675
+ self.auth_token = auth_token
22676
+ self.product_instance_id = product_instance_id
22677
+ # 商户传入外部交易订单号
22678
+ self.out_trade_no = out_trade_no
22679
+
22680
+ def validate(self):
22681
+ self.validate_required(self.out_trade_no, 'out_trade_no')
22682
+
22683
+ def to_map(self):
22684
+ _map = super().to_map()
22685
+ if _map is not None:
22686
+ return _map
22687
+
22688
+ result = dict()
22689
+ if self.auth_token is not None:
22690
+ result['auth_token'] = self.auth_token
22691
+ if self.product_instance_id is not None:
22692
+ result['product_instance_id'] = self.product_instance_id
22693
+ if self.out_trade_no is not None:
22694
+ result['out_trade_no'] = self.out_trade_no
22695
+ return result
22696
+
22697
+ def from_map(self, m: dict = None):
22698
+ m = m or dict()
22699
+ if m.get('auth_token') is not None:
22700
+ self.auth_token = m.get('auth_token')
22701
+ if m.get('product_instance_id') is not None:
22702
+ self.product_instance_id = m.get('product_instance_id')
22703
+ if m.get('out_trade_no') is not None:
22704
+ self.out_trade_no = m.get('out_trade_no')
22705
+ return self
22706
+
22707
+
22708
+ class CancelDigitalkeyWithholdResponse(TeaModel):
22709
+ def __init__(
22710
+ self,
22711
+ req_msg_id: str = None,
22712
+ result_code: str = None,
22713
+ result_msg: str = None,
22714
+ sub_code: str = None,
22715
+ sub_msg: str = None,
22716
+ data: str = None,
22717
+ ):
22718
+ # 请求唯一ID,用于链路跟踪和问题排查
22719
+ self.req_msg_id = req_msg_id
22720
+ # 结果码,一般OK表示调用成功
22721
+ self.result_code = result_code
22722
+ # 异常信息的文本描述
22723
+ self.result_msg = result_msg
22724
+ # 明细返回码
22725
+ self.sub_code = sub_code
22726
+ # 明细返回码描述
22727
+ self.sub_msg = sub_msg
22728
+ # 撤销返回信息
22729
+ self.data = data
22730
+
22731
+ def validate(self):
22732
+ pass
22733
+
22734
+ def to_map(self):
22735
+ _map = super().to_map()
22736
+ if _map is not None:
22737
+ return _map
22738
+
22739
+ result = dict()
22740
+ if self.req_msg_id is not None:
22741
+ result['req_msg_id'] = self.req_msg_id
22742
+ if self.result_code is not None:
22743
+ result['result_code'] = self.result_code
22744
+ if self.result_msg is not None:
22745
+ result['result_msg'] = self.result_msg
22746
+ if self.sub_code is not None:
22747
+ result['sub_code'] = self.sub_code
22748
+ if self.sub_msg is not None:
22749
+ result['sub_msg'] = self.sub_msg
22750
+ if self.data is not None:
22751
+ result['data'] = self.data
22752
+ return result
22753
+
22754
+ def from_map(self, m: dict = None):
22755
+ m = m or dict()
22756
+ if m.get('req_msg_id') is not None:
22757
+ self.req_msg_id = m.get('req_msg_id')
22758
+ if m.get('result_code') is not None:
22759
+ self.result_code = m.get('result_code')
22760
+ if m.get('result_msg') is not None:
22761
+ self.result_msg = m.get('result_msg')
22762
+ if m.get('sub_code') is not None:
22763
+ self.sub_code = m.get('sub_code')
22764
+ if m.get('sub_msg') is not None:
22765
+ self.sub_msg = m.get('sub_msg')
22766
+ if m.get('data') is not None:
22767
+ self.data = m.get('data')
22768
+ return self
22769
+
22770
+
22771
+ class NotifyDigitalkeyWithholdRequest(TeaModel):
22772
+ def __init__(
22773
+ self,
22774
+ auth_token: str = None,
22775
+ product_instance_id: str = None,
22776
+ out_request_no: str = None,
22777
+ total_amount: int = None,
22778
+ agreement_no: str = None,
22779
+ ):
22780
+ # OAuth模式下的授权token
22781
+ self.auth_token = auth_token
22782
+ self.product_instance_id = product_instance_id
22783
+ # 商户请求号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复
22784
+ self.out_request_no = out_request_no
22785
+ # 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
22786
+ self.total_amount = total_amount
22787
+ # 代扣协议号, 对应于签约时,支付宝返回的协议
22788
+ self.agreement_no = agreement_no
22789
+
22790
+ def validate(self):
22791
+ self.validate_required(self.out_request_no, 'out_request_no')
22792
+ self.validate_required(self.total_amount, 'total_amount')
22793
+ self.validate_required(self.agreement_no, 'agreement_no')
22794
+
22795
+ def to_map(self):
22796
+ _map = super().to_map()
22797
+ if _map is not None:
22798
+ return _map
22799
+
22800
+ result = dict()
22801
+ if self.auth_token is not None:
22802
+ result['auth_token'] = self.auth_token
22803
+ if self.product_instance_id is not None:
22804
+ result['product_instance_id'] = self.product_instance_id
22805
+ if self.out_request_no is not None:
22806
+ result['out_request_no'] = self.out_request_no
22807
+ if self.total_amount is not None:
22808
+ result['total_amount'] = self.total_amount
22809
+ if self.agreement_no is not None:
22810
+ result['agreement_no'] = self.agreement_no
22811
+ return result
22812
+
22813
+ def from_map(self, m: dict = None):
22814
+ m = m or dict()
22815
+ if m.get('auth_token') is not None:
22816
+ self.auth_token = m.get('auth_token')
22817
+ if m.get('product_instance_id') is not None:
22818
+ self.product_instance_id = m.get('product_instance_id')
22819
+ if m.get('out_request_no') is not None:
22820
+ self.out_request_no = m.get('out_request_no')
22821
+ if m.get('total_amount') is not None:
22822
+ self.total_amount = m.get('total_amount')
22823
+ if m.get('agreement_no') is not None:
22824
+ self.agreement_no = m.get('agreement_no')
22825
+ return self
22826
+
22827
+
22828
+ class NotifyDigitalkeyWithholdResponse(TeaModel):
22829
+ def __init__(
22830
+ self,
22831
+ req_msg_id: str = None,
22832
+ result_code: str = None,
22833
+ result_msg: str = None,
22834
+ sub_code: str = None,
22835
+ sub_msg: str = None,
22836
+ data: str = None,
22837
+ ):
22838
+ # 请求唯一ID,用于链路跟踪和问题排查
22839
+ self.req_msg_id = req_msg_id
22840
+ # 结果码,一般OK表示调用成功
22841
+ self.result_code = result_code
22842
+ # 异常信息的文本描述
22843
+ self.result_msg = result_msg
22844
+ # 明细返回码
22845
+ self.sub_code = sub_code
22846
+ # 明细返回码描述
22847
+ self.sub_msg = sub_msg
22848
+ # 预通知返回内容
22849
+ self.data = data
22850
+
22851
+ def validate(self):
22852
+ pass
22853
+
22854
+ def to_map(self):
22855
+ _map = super().to_map()
22856
+ if _map is not None:
22857
+ return _map
22858
+
22859
+ result = dict()
22860
+ if self.req_msg_id is not None:
22861
+ result['req_msg_id'] = self.req_msg_id
22862
+ if self.result_code is not None:
22863
+ result['result_code'] = self.result_code
22864
+ if self.result_msg is not None:
22865
+ result['result_msg'] = self.result_msg
22866
+ if self.sub_code is not None:
22867
+ result['sub_code'] = self.sub_code
22868
+ if self.sub_msg is not None:
22869
+ result['sub_msg'] = self.sub_msg
22870
+ if self.data is not None:
22871
+ result['data'] = self.data
22872
+ return result
22873
+
22874
+ def from_map(self, m: dict = None):
22875
+ m = m or dict()
22876
+ if m.get('req_msg_id') is not None:
22877
+ self.req_msg_id = m.get('req_msg_id')
22878
+ if m.get('result_code') is not None:
22879
+ self.result_code = m.get('result_code')
22880
+ if m.get('result_msg') is not None:
22881
+ self.result_msg = m.get('result_msg')
22882
+ if m.get('sub_code') is not None:
22883
+ self.sub_code = m.get('sub_code')
22884
+ if m.get('sub_msg') is not None:
22885
+ self.sub_msg = m.get('sub_msg')
22886
+ if m.get('data') is not None:
22887
+ self.data = m.get('data')
22888
+ return self
22889
+
22890
+
21907
22891
  class QueryIotplatformPurchaseorderRequest(TeaModel):
21908
22892
  def __init__(
21909
22893
  self,