using Newtonsoft.Json; using System.ComponentModel.DataAnnotations; namespace LifePayment.Domain { public class UserAgreementPageSignInput { /// <summary> /// 个人ç¾çº¦äº§å“ç ,商户和支付å®ç¾çº¦æ—¶ç¡®å®šï¼Œå•†æˆ·å¯å’¨è¯¢æŠ€æœ¯æ”¯æŒã€‚值:GENERAL_WITHHOLDING_P /// </summary> [JsonProperty("personal_product_code", NullValueHandling = NullValueHandling.Ignore)] [Required] public string PersonalProductCode { get; set; } /// <summary> /// è¯·æŒ‰å½“å‰æŽ¥å…¥çš„æ–¹å¼è¿›è¡Œå¡«å……,且输入值必须为文档ä¸çš„傿•°å–值范围。 /// æ‰«ç æˆ–者çŸä¿¡é¡µé¢ç¾çº¦éœ€è¦æ‹¼è£…http的请求地å€è®¿é—®ä¸é—´é¡µé¢ï¼Œé’±åŒ…h5页é¢ç¾çº¦å¯ç›´æŽ¥æ‹¼æŽ¥schemeçš„è¯·æ±‚åœ°å€ /// </summary> [JsonProperty("access_params", NullValueHandling = NullValueHandling.Ignore)] [Required] public AccessParams AccessParams { get; set; } /// <summary> /// ã€æè¿°ã€‘å‘¨æœŸç®¡æŽ§è§„åˆ™å‚æ•°period_rule_params,在ç¾çº¦å‘¨æœŸæ‰£æ¬¾äº§å“(如CYCLE_PAY_AUTH_Pï¼‰æ—¶å¿…ä¼ ï¼Œåœ¨ç¾çº¦å…¶ä»–äº§å“æ—¶æ— éœ€ä¼ å…¥ã€‚ /// 周期扣款产å“ï¼Œä¼šæŒ‰ç…§è¿™é‡Œä¼ å…¥çš„å‚æ•°æç¤ºç”¨æˆ·ï¼Œå¹¶å¯¹å‘起扣款的时间ã€é‡‘é¢ã€æ¬¡æ•°ç‰åšç›¸åº”é™åˆ¶ã€‚ /// </summary> [JsonProperty("period_rule_params", NullValueHandling = NullValueHandling.Ignore)] public PeriodRuleParams PeriodRuleParams { get; set; } /// <summary> /// 销售产å“ç ,商户ç¾çº¦çš„æ”¯ä»˜å®åˆåŒæ‰€å¯¹åº”的产å“ç 。值:GENERAL_WITHHOLDING /// </summary> [JsonProperty("product_code", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ParentBranchNo { get; set; } /// <summary> /// 用户在商户网站的登录账å·ï¼Œç”¨äºŽåœ¨ç¾çº¦é¡µé¢å±•示,如果为空,则ä¸å±•示 /// </summary> [JsonProperty("external_logon_id", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ExternalLogonId { get; set; } /// <summary> /// åè®®ç¾çº¦åœºæ™¯ï¼Œå•†æˆ·å¯æ ¹æ® 代扣产å“常è§åœºæ™¯å€¼ 选择符åˆè‡ªèº«çš„行业场景。 è¯´æ˜Žï¼šå½“ä¼ å…¥å•†æˆ·ç¾çº¦å· external_agreement_no æ—¶ï¼Œæœ¬å‚æ•°å¿…填,ä¸èƒ½ä¸ºé»˜è®¤å€¼ DEFAULT|DEFAULT。 /// </summary> [JsonProperty("sign_scene", NullValueHandling = NullValueHandling.Ignore)] [Required] public string SignScene { get; set; } /// <summary> /// 商家ç¾çº¦çš„产å“ç ,固定值。安全å‘-æœåŠ¡å•†æ¨¡å¼ï¼ˆå•笔转账到支付å®è´¦æˆ·ï¼‰ /// </summary> [JsonProperty("product_code", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ProductCode { get; set; } /// <summary> /// 商户ç¾çº¦å·ï¼Œä»£æ‰£åè®®ä¸æ ‡ç¤ºç”¨æˆ·çš„唯一ç¾çº¦å·ï¼ˆç¡®ä¿åœ¨å•†æˆ·ç³»ç»Ÿä¸å”¯ä¸€ï¼‰ã€‚ /// æ ¼å¼è§„则:支æŒå¤§å†™å°å†™å—æ¯å’Œæ•°å—,最长32ä½ã€‚ /// å•†æˆ·ç³»ç»ŸæŒ‰éœ€ä¼ å…¥ï¼Œå¦‚æžœåŒä¸€ç”¨æˆ·åœ¨åŒä¸€äº§å“ç ã€åŒä¸€ç¾çº¦åœºæ™¯ä¸‹ï¼Œç¾è®¢äº†å¤šä»½ä»£æ‰£åè®®ï¼Œé‚£ä¹ˆéœ€è¦æŒ‡å®šå¹¶ä¼ 入该值。 /// </summary> [JsonProperty("external_agreement_no", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ExternalAgreementNo { get; set; } /// <summary> /// ç¾çº¦ç¬¬ä¸‰æ–¹ä¸»ä½“类型。对于三方å议,表示当å‰ç”¨æˆ·å’Œå“ªä¸€ç±»çš„第三方主体进行ç¾çº¦ã€‚ /// å–值范围: /// 1. PARTNER(平å°å•†æˆ·ï¼‰ /// 2. MERCHANT(集团商户),集团下å商户å¯å…±äº«ç”¨æˆ·ç¾çº¦å†…容 /// 默认为PARTNER。 /// </summary> [JsonProperty("third_party_type", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ThirdPartyType { get; set; } /// <summary> /// 当å‰ç”¨æˆ·ç¾çº¦è¯·æ±‚çš„å议有效周期。 /// 整形数å—åŠ ä¸Šæ—¶é—´å•ä½çš„å议有效期,从å‘èµ·ç¾çº¦è¯·æ±‚的时间开始算起。 /// ç›®å‰æ”¯æŒçš„æ—¶é—´å•ä½ï¼š /// 1. d:天 /// 2. m:月 /// å¦‚æžœæœªä¼ å…¥ï¼Œé»˜è®¤ä¸ºé•¿æœŸæœ‰æ•ˆã€‚ /// </summary> [JsonProperty("sign_validity_period", NullValueHandling = NullValueHandling.Ignore)] public string SignValidityPeriod { get; set; } /// <summary> /// ç¾çº¦è¥é”€å‚数,æ¤å€¼ä¸ºjsonæ ¼å¼ï¼›å…·ä½“çš„key需与è¥é”€çº¦å®š /// </summary> [JsonProperty("promo_params", NullValueHandling = NullValueHandling.Ignore)] public string PromoParams { get; set; } /// <summary> /// æ¤å‚æ•°ç”¨äºŽä¼ é€’å商户信æ¯ï¼Œæ— 特殊需求时ä¸ç”¨å…³æ³¨ã€‚ /// ç›®å‰å•†æˆ·ä»£æ‰£ã€æµ·å¤–ä»£æ‰£ã€æ·˜æ—…行信用ä½äº§å“支æŒä¼ å…¥è¯¥å‚æ•°ï¼ˆåœ¨é”€å”®æ–¹æ¡ˆä¸â€œæ˜¯å¦å…许自定义å商户信æ¯â€éœ€è¦é€‰æ˜¯ï¼‰ã€‚ /// </summary> [JsonProperty("sub_merchant", NullValueHandling = NullValueHandling.Ignore)] public SubMerchantParams SubMerchantParams { get; set; } /// <summary> /// å议生效类型, 用于指定å议是立å³ç”Ÿæ•ˆè¿˜æ˜¯ç‰å¾…商户通知å†ç”Ÿæ•ˆ. å¯ç©º, ä¸å¡«é»˜è®¤ä¸ºç«‹å³ç”Ÿæ•ˆ. /// </summary> [JsonProperty("agreement_effect_type", NullValueHandling = NullValueHandling.Ignore)] public string AgreementEffectType { get; set; } /// <summary> /// 用户实åä¿¡æ¯å‚数,包å«ï¼šå§“åã€èº«ä»½è¯å·ã€ç¾çº¦æŒ‡å®šuidã€‚å•†æˆ·ä¼ å…¥ç”¨æˆ·å®žåä¿¡æ¯å‚数,支付å®ä¼šå¯¹æ¯”用户在支付å®ç«¯çš„实åä¿¡æ¯ã€‚ /// </summary> [JsonProperty("identity_params", NullValueHandling = NullValueHandling.Ignore)] public IdentityParams IdentityParams { get; set; } /// <summary> /// 商户希望é™åˆ¶çš„ç¾çº¦ç”¨æˆ·çš„年龄范围,min表示å¯ç¾è¯¥å议的用户年龄下é™ï¼Œmax表示年龄上é™ã€‚如{"min": "18","max": "30"}表示18=<年龄<=30的用户å¯ä»¥ç¾çº¦è¯¥å议。 /// </summary> [JsonProperty("user_age_range", NullValueHandling = NullValueHandling.Ignore)] public string UserAgeRange { get; set; } /// <summary> /// ç¾çº¦æœ‰æ•ˆæ—¶é—´é™åˆ¶ï¼Œå•使˜¯ç§’,有效范围是0-86400ï¼Œå•†æˆ·ä¼ å…¥æ¤å—æ®µä¼šç”¨å•†æˆ·ä¼ å…¥çš„å€¼å¦åˆ™ä½¿ç”¨æ”¯ä»˜å®ä¾§é»˜è®¤å€¼ï¼Œåœ¨æœ‰æ•ˆæ—¶é—´å¤–进行ç¾çº¦ï¼Œä¼šè¿›è¡Œå®‰å…¨æ‹¦æˆªï¼›ï¼ˆå¤‡æ³¨ï¼šæ¤å—段适用于需è¦å¼€é€šå®‰å…¨é˜²æŽ§çš„商户,且ä¾èµ–å•†æˆ·ä¼ å…¥ç”Ÿæˆç¾çº¦æ—¶çš„æ—¶é—´æˆ³å—段timestamp) /// </summary> [JsonProperty("effect_time", NullValueHandling = NullValueHandling.Ignore)] public string EffectTime { get; set; } } public class AccessParams { /// <summary> /// ç›®å‰æ”¯æŒä»¥ä¸‹å€¼ï¼š /// 1. ALIPAYAPP (钱包h5页é¢ç¾çº¦ï¼‰ /// 2. QRCODE(扫ç ç¾çº¦) /// 3. QRCODEORSMS(扫ç ç¾çº¦æˆ–者çŸä¿¡ç¾çº¦) /// </summary> [JsonProperty("channel", NullValueHandling = NullValueHandling.Ignore)] [Required] public string Channel { get; set; } } public class PeriodRuleParams { /// <summary> /// ã€æè¿°ã€‘å‘¨æœŸç±»åž‹period_type是周期扣款产å“必填,枚举值为DAYå’ŒMONTH。 DAY峿‰£æ¬¾å‘¨æœŸæŒ‰å¤©è®¡ï¼ŒMONTH代表扣款周期按自然月。 /// 与å¦ä¸€å‚æ•°period组åˆä½¿ç”¨ç¡®å®šæ‰£æ¬¾å‘¨æœŸï¼Œä¾‹å¦‚period_type为DAY,period=30,则扣款周期为30天;period_type为MONTH,period=3,则扣款周期为3个自然月。 自然月是指,ä¸è®ºè¿™ä¸ªæœˆæœ‰å¤šå°‘天,周期都计算到月份ä¸çš„åŒä¸€æ—¥æœŸã€‚ /// 例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。注æ„周期类型使用MONTH的时候,计划扣款时间execute_timeä¸å…è®¸ä¼ 28日之åŽçš„æ—¥æœŸï¼ˆå¯ä»¥ä¼ 28日),以æ¤é¿å…有些月份å¯èƒ½ä¸å˜åœ¨å¯¹åº”日期的情况。 /// ã€æžšä¸¾å€¼ã€‘ /// 自然日: DAY /// 自然月: MONTH /// </summary> [JsonProperty("period_type", NullValueHandling = NullValueHandling.Ignore)] public string PeriodType { get; set; } /// <summary> /// ã€æè¿°ã€‘å‘¨æœŸæ•°period是周期扣款产å“必填。与å¦ä¸€å‚æ•°period_type组åˆä½¿ç”¨ç¡®å®šæ‰£æ¬¾å‘¨æœŸï¼Œä¾‹å¦‚period_type为DAY,period=90,则扣款周期为90天。 /// </summary> [JsonProperty("period", NullValueHandling = NullValueHandling.Ignore)] public string Period { get; set; } /// <summary> /// 首次执行时间execute_time是周期扣款产å“必填,å³å•†æˆ·å‘èµ·é¦–æ¬¡æ‰£æ¬¾çš„æ—¶é—´ã€‚ç²¾ç¡®åˆ°æ—¥ï¼Œæ ¼å¼ä¸ºyyyy-MM-dd 结åˆå…¶ä»–å¿…å¡«çš„æ‰£æ¬¾å‘¨æœŸå‚æ•°ï¼Œä¼šç¡®å®šå•†æˆ·ä»¥åŽçš„æ‰£æ¬¾è®¡åˆ’。å‘起扣款的时间需符åˆè¿™é‡Œçš„æ‰£æ¬¾è®¡åˆ’。 /// </summary> [JsonProperty("execute_time", NullValueHandling = NullValueHandling.Ignore)] public string ExecuteTime { get; set; } /// <summary> /// ã€æè¿°ã€‘å•æ¬¡æ‰£æ¬¾æœ€å¤§é‡‘é¢single_amount是周期扣款产å“å¿…å¡«ï¼Œå³æ¯æ¬¡å‘起扣款时é™åˆ¶çš„æœ€å¤§é‡‘é¢ï¼Œå•ä½ä¸ºå…ƒã€‚å•†æˆ·æ¯æ¬¡å‘起扣款都ä¸å…许大于æ¤é‡‘é¢ã€‚ /// </summary> [JsonProperty("single_amount", NullValueHandling = NullValueHandling.Ignore)] public decimal SingleAmount { get; set; } /// <summary> /// ã€æè¿°ã€‘æ€»é‡‘é¢é™åˆ¶ï¼Œå•ä½ä¸ºå…ƒã€‚å¦‚æžœä¼ å…¥æ¤å‚数,商户多次扣款的累计金é¢ä¸å…许超过æ¤é‡‘é¢ã€‚ /// </summary> [JsonProperty("total_amount", NullValueHandling = NullValueHandling.Ignore)] public decimal TotalAmount { get; set; } /// <summary> /// ã€æè¿°ã€‘æ€»æ‰£æ¬¾æ¬¡æ•°ã€‚å¦‚æžœä¼ å…¥æ¤å‚数,则商户æˆåŠŸæ‰£æ¬¾çš„æ¬¡æ•°ä¸èƒ½è¶…è¿‡æ¤æ¬¡æ•°é™åˆ¶ï¼ˆæ‰£æ¬¾å¤±è´¥ä¸è®¡å…¥ï¼‰ã€‚ /// </summary> [JsonProperty("total_payments", NullValueHandling = NullValueHandling.Ignore)] public int TotalPayments { get; set; } } public class SubMerchantParams { /// <summary> /// å商户的商户id /// </summary> [JsonProperty("sub_merchant_id", NullValueHandling = NullValueHandling.Ignore)] public string SubMerchantId { get; set; } /// <summary> /// å商户的商户åç§° /// </summary> [JsonProperty("sub_merchant_name", NullValueHandling = NullValueHandling.Ignore)] public string SubMerchantName { get; set; } /// <summary> /// å商户的æœåŠ¡åç§° /// </summary> [JsonProperty("sub_merchant_service_name", NullValueHandling = NullValueHandling.Ignore)] public string SubMerchantServiceName { get; set; } /// <summary> /// å商户的æœåŠ¡æè¿° /// </summary> [JsonProperty("sub_merchant_service_description", NullValueHandling = NullValueHandling.Ignore)] public string SubMerchantServiceDescription { get; set; } } public class IdentityParams { [JsonProperty("cert_no", NullValueHandling = NullValueHandling.Ignore)] public string CertNo { get; set; } [JsonProperty("user_name", NullValueHandling = NullValueHandling.Ignore)] public string UserName { get; set; } } }