V2MerchantSettleModifyRequestDemo.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections.Generic;
  3. using BasePaySdk;
  4. using BasePaySdk.Request;
  5. using Newtonsoft.Json;
  6. using Newtonsoft.Json.Linq;
  7. namespace BasePayDemo
  8. {
  9. /**
  10. * 修改子账户配置(2022) - 示例
  11. *
  12. * @author sdk-generator
  13. * @Description
  14. */
  15. public class V2MerchantSettleModifyRequestDemo
  16. {
  17. public static void V2MerchantSettleModifyRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2MerchantSettleModifyRequest request = new V2MerchantSettleModifyRequest();
  23. // 请求流水号
  24. request.setReqSeqId(DateTime.Now.ToString("yyy-MM-dd HH.mm.ss.fff"));
  25. // 请求日期
  26. request.setReqDate(DateTime.Now.ToString("yyyyMMdd"));
  27. // 商户/用户汇付Id
  28. request.setHuifuId("6666000106071234");
  29. // 上级汇付Id
  30. request.setUpperHuifuId("6666000106065087");
  31. // 子账户号
  32. request.setAcctId("C01571234");
  33. // 设置非必填字段
  34. Dictionary<string, object> extendInfoMap = getExtendInfos();
  35. request.setExtendInfo(extendInfoMap);
  36. try {
  37. // 3. 发起API调用
  38. // 调用接口,使用默认商户配置时可省略配置key
  39. Dictionary<string, Object> result = null;
  40. result = BasePayClient.postRequest(request,null);
  41. // 使用指定配置调用接口
  42. // result = BasePayClient.postRequest(request,null,"merchantKey2");
  43. Console.WriteLine(JsonConvert.SerializeObject(result));
  44. }
  45. catch (Exception ex) {
  46. Console.WriteLine(ex);
  47. }
  48. }
  49. /**
  50. * 非必填字段
  51. * @return
  52. */
  53. private static Dictionary<string, object> getExtendInfos() {
  54. // 设置非必填字段
  55. Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
  56. // 结算卡信息配置
  57. extendInfoMap.Add("card_info", getCardInfo());
  58. // 结算规则配置
  59. extendInfoMap.Add("settle_config", getSettleConfig());
  60. // 异步请求地址
  61. extendInfoMap.Add("async_return_url", "");
  62. // 汇总结算配置实体
  63. // extendInfoMap.Add("collection_settle_config", getCollectionSettleConfig());
  64. return extendInfoMap;
  65. }
  66. private static string getCardInfo() {
  67. Dictionary<string, object> obj = new Dictionary<string, object>();
  68. // 结算账户类型
  69. obj.Add("card_type", "0");
  70. // 结算账户名
  71. obj.Add("card_name", "张三");
  72. // 结算账号
  73. obj.Add("card_no", "6225682141111111111");
  74. // 银行所在省
  75. obj.Add("prov_id", "310000");
  76. // 银行所在市
  77. obj.Add("area_id", "310100");
  78. // 银行编号参考: [银行编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_yhbm) ; &lt;font color&#x3D;&quot;green&quot;&gt;示例值:01020000 &lt;/font&gt; &lt;br/&gt;当card_type&#x3D;0时必填, 当card_type&#x3D;1或2时非必填
  79. obj.Add("bank_code", "01030000");
  80. // 联行号参考:[银行支行编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_yhzhbm) 当card_type&#x3D;0时必填, 当card_type&#x3D;1或2时非必填 &lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:102290026507&lt;/font&gt;
  81. obj.Add("branch_code", "103290040169");
  82. // 支行名称开户支行名称。 当card_type&#x3D;0时必填, 当card_type&#x3D;1或2时非必填; &lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:中国工商银行上海市中山北路支行&lt;/font&gt;
  83. obj.Add("branch_name", "中国农业银行股份有限公司XXX支行");
  84. // 持卡人证件类型参见《[自然人证件类型](https://paas.huifu.com/open/doc/api/#/api_ggcsbm?id&#x3D;%e8%87%aa%e7%84%b6%e4%ba%ba%e8%af%81%e4%bb%b6%e7%b1%bb%e5%9e%8b)》 当card_type&#x3D;0时为空, 当card_type&#x3D;1或2时必填;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:00&lt;/font&gt;
  85. obj.Add("cert_type", "00");
  86. // 持卡人证件有效期截止日期日期格式:yyyyMMdd,以北京时间为准。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:20220125&lt;/font&gt;,当cert_validity_type&#x3D;0时必填;当cert_validity_type&#x3D;1时为空
  87. obj.Add("cert_end_date", "20221212");
  88. // 持卡人证件号码
  89. obj.Add("cert_no", "220105198806082098");
  90. // 持卡人证件有效期类型
  91. obj.Add("cert_validity_type", "0");
  92. // 持卡人证件有效期开始
  93. obj.Add("cert_begin_date", "20220101");
  94. // 结算人手机号
  95. obj.Add("mp", "17521216927");
  96. return JsonConvert.SerializeObject(obj);
  97. }
  98. private static string getSettleConfig() {
  99. Dictionary<string, object> obj = new Dictionary<string, object>();
  100. // 状态
  101. obj.Add("settle_status", "0");
  102. // 结算周期
  103. obj.Add("settle_cycle", "D1");
  104. // 结算手续费外扣商户号填写承担手续费的汇付商户号;当out_settle_flag&#x3D;1时必填,否则非必填;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:6666000123123123&lt;/font&gt;
  105. obj.Add("out_settle_huifuid", "6666000106071234");
  106. // 起结金额
  107. obj.Add("min_amt", "1");
  108. // 留存金额
  109. obj.Add("remained_amt", "2");
  110. // 结算摘要
  111. obj.Add("settle_abstract", "abstract");
  112. // 手续费外扣标记
  113. obj.Add("out_settle_flag", "1");
  114. // 结算手续费外扣账户类型
  115. obj.Add("out_settle_acct_type", "01");
  116. // 节假日结算手续费率(%)
  117. obj.Add("fixed_ratio", "66.88");
  118. // 结算方式
  119. obj.Add("settle_pattern", "P0");
  120. // 结算批次号
  121. obj.Add("settle_batch_no", "0");
  122. // 是否优先到账
  123. obj.Add("is_priority_receipt", "N");
  124. // 自定义结算处理时间
  125. obj.Add("settle_time", "211221");
  126. // 节假日结算手续费固定金额(元)
  127. obj.Add("constant_amt", "66.99");
  128. // 卡序列号
  129. obj.Add("token_no", "");
  130. return JsonConvert.SerializeObject(obj);
  131. }
  132. private static string getCollectionSettleConfig() {
  133. Dictionary<string, object> obj = new Dictionary<string, object>();
  134. // 归集留存金(元)
  135. // obj.Add("out_resv_amt", "test");
  136. // 转入账户
  137. // obj.Add("in_acct_id", "test");
  138. // 转入商户号
  139. // obj.Add("in_huifu_id", "test");
  140. // 生效日期
  141. // obj.Add("valid_date", "test");
  142. // 功能开关
  143. // obj.Add("switch_state", "");
  144. // 转出账户
  145. // obj.Add("out_acct_id", "");
  146. return JsonConvert.SerializeObject(obj);
  147. }
  148. }
  149. }