V2UserBusiModifyRequestDemo.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. * 用户业务入驻修改 - 示例
  11. *
  12. * @author sdk-generator
  13. * @Description
  14. */
  15. public class V2UserBusiModifyRequestDemo
  16. {
  17. public static void V2UserBusiModifyRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2UserBusiModifyRequest request = new V2UserBusiModifyRequest();
  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.setUpperHuifuId("6666000104633228");
  29. // 汇付ID
  30. request.setHuifuId("6666000104896342");
  31. // 乐接活配置当合作平台为乐接活,必填
  32. // request.setLjhData(getLjhData());
  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("settle_config", getSettleConfig());
  58. // 结算卡信息
  59. extendInfoMap.Add("card_info", getCardInfo());
  60. // 取现配置列表
  61. extendInfoMap.Add("cash_config", getCashConfig());
  62. // 文件列表
  63. extendInfoMap.Add("file_list", getFileList());
  64. // 延迟入账开关
  65. // extendInfoMap.Add("delay_flag", "");
  66. // 异步请求地址
  67. extendInfoMap.Add("async_return_url", "//http://service.example.com/to/path");
  68. // 斗拱e账户功能配置
  69. // extendInfoMap.Add("elec_acct_config", getElecAcctConfig());
  70. // 灵活用工开关
  71. // extendInfoMap.Add("open_tax_flag", "");
  72. // 合作平台
  73. // extendInfoMap.Add("lg_platform_type", "");
  74. return extendInfoMap;
  75. }
  76. private static string getSettleConfig() {
  77. Dictionary<string, object> obj = new Dictionary<string, object>();
  78. // 开通状态
  79. obj.Add("settle_status", "1");
  80. // 结算周期
  81. obj.Add("settle_cycle", "D1");
  82. // 结算批次号settle_pattern为P0时必填;[参见结算批次说明](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_jspc)
  83. obj.Add("settle_batch_no", "0");
  84. // 是否优先到账settle_pattern为P0时选填, Y:是 N:否(为空默认取值);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:Y&lt;/font&gt;
  85. obj.Add("is_priority_receipt", "Y");
  86. // 自定义结算处理时间settle_pattern为P1/P2时必填,注意:00:00到00:30不能指定;格式:HHmmss;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:103000&lt;/font&gt;
  87. obj.Add("settle_time", "");
  88. // 节假日结算手续费率settle_cycle为D1时必填。单位%,需保留小数点后两位。取值范围[0.00,100.00],不收费请填写0.00;settle_cycle&#x3D;T1时,不生效 ;settle_cycle为D1时,遇节假日按此费率结算 ;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:0.05&lt;/font&gt;
  89. obj.Add("fixed_ratio", "0.1");
  90. // 起结金额
  91. obj.Add("min_amt", "0.1");
  92. // 结算手续费外扣时的账户类型
  93. obj.Add("out_settle_acct_type", "05");
  94. // 手续费外扣标记
  95. obj.Add("out_settle_flag", "1");
  96. // 结算手续费外扣时的汇付ID
  97. obj.Add("out_settle_huifuid", "6666000104633228");
  98. // 留存金额
  99. obj.Add("remained_amt", "0.1");
  100. // 结算摘要
  101. obj.Add("settle_abstract", "吃吃");
  102. // 结算方式
  103. obj.Add("settle_pattern", "P0");
  104. // 工作日结算手续费率
  105. // obj.Add("workday_fixed_ratio", "");
  106. // 工作日结算手续费固定金额
  107. // obj.Add("workday_constant_amt", "");
  108. return JsonConvert.SerializeObject(obj);
  109. }
  110. private static string getCardInfo() {
  111. Dictionary<string, object> obj = new Dictionary<string, object>();
  112. // 卡类型
  113. obj.Add("card_type", "0");
  114. // 卡户名
  115. obj.Add("card_name", "陈立一");
  116. // 卡号
  117. obj.Add("card_no", "6217001210064762000");
  118. // 银行所在省
  119. obj.Add("prov_id", "310000");
  120. // 银行所在市
  121. obj.Add("area_id", "310100");
  122. // 银行号当card_type&#x3D;0时必填,对私可以为空;[参见银行编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_yhbm);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:01020000&lt;/font&gt;
  123. obj.Add("bank_code", "01050000");
  124. // 支行联行号当card_type&#x3D;0时必填,[点击查看](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_yhzhbm);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:102290026507&lt;/font&gt;
  125. obj.Add("branch_code", "105305264815");
  126. // 持卡人证件类型
  127. obj.Add("cert_type", "00");
  128. // 持卡人证件号码
  129. obj.Add("cert_no", "110101197003077000");
  130. // 持卡人证件有效期类型
  131. obj.Add("cert_validity_type", "0");
  132. // 持卡人证件有效期起始日期
  133. obj.Add("cert_begin_date", "20210806");
  134. // 持卡人证件有效期截止日期
  135. obj.Add("cert_end_date", "20410806");
  136. // 银行卡绑定手机号
  137. obj.Add("mp", "15556622000");
  138. // 默认结算卡标志
  139. // obj.Add("is_settle_default", "");
  140. return JsonConvert.SerializeObject(obj);
  141. }
  142. private static string getCashConfig() {
  143. Dictionary<string, object> obj = new Dictionary<string, object>();
  144. // 开通状态
  145. obj.Add("switch_state", "1");
  146. // 提现手续费(固定/元)fix_amt与fee_rate至少填写一项, 需保留小数点后两位,不收费请填写0.00;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:1.00&lt;/font&gt;注:当cash_type&#x3D;D1时为节假日取现手续费
  147. obj.Add("fix_amt", "3");
  148. // 提现手续费率(%)fix_amt与fee_rate至少填写一项,需保留小数点后两位,取值范围[0.00,100.00],不收费请填写0.00;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:0.05&lt;/font&gt;注:1、如果fix_amt与fee_rate都填写了则手续费&#x3D;fix_amt+支付金额\*fee_rate2、当cash_type&#x3D;D1时为节假日取现手续费
  149. obj.Add("fee_rate", "0.05");
  150. // D1工作日取现手续费固定金额单位元,需保留小数点后两位。不收费请填写0.00;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:1.00&lt;/font&gt;cash_type&#x3D;D1时,不生效 ;cash_type取现类型为D1时,遇工作日按此费率结算,若未配置则默认按照节假日手续费计算
  151. // obj.Add("weekday_fix_amt", "test");
  152. // D1工作日取现手续费率单位%,需保留小数点后两位。取值范围[0.00,100.00],不收费请填写0.00;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:0.05&lt;/font&gt;cash_type&#x3D;D1时,不生效 ;cash_type取现类型为D1时,遇工作日按此费率结算 ,若未配置则默认按照节假日手续费计算
  153. // obj.Add("weekday_fee_rate", "test");
  154. // 业务类型
  155. obj.Add("cash_type", "D0");
  156. // 是否交易手续费外扣
  157. obj.Add("out_fee_flag", "1");
  158. // 手续费承担方
  159. obj.Add("out_fee_huifu_id", "6666000104633228");
  160. // 交易手续费外扣的账户类型
  161. obj.Add("out_fee_acct_type", "05");
  162. // 是否优先到账
  163. // obj.Add("is_priority_receipt", "");
  164. JArray objList = new JArray();
  165. objList.Add(JToken.FromObject(obj));
  166. return JsonConvert.SerializeObject(objList);
  167. }
  168. private static string getFileList() {
  169. Dictionary<string, object> obj = new Dictionary<string, object>();
  170. // 文件类型
  171. obj.Add("file_type", "F02");
  172. // 文件jfileID
  173. obj.Add("file_id", "99e00421-dad7-3334-9538-4f2ad10612d5");
  174. // 文件名称
  175. obj.Add("file_name", "企业营业执照1.jpg");
  176. JArray objList = new JArray();
  177. objList.Add(JToken.FromObject(obj));
  178. return JsonConvert.SerializeObject(objList);
  179. }
  180. private static string getElecCardList() {
  181. Dictionary<string, object> obj = new Dictionary<string, object>();
  182. // 银行编码
  183. // obj.Add("bank_code", "test");
  184. // 支行联行号
  185. // obj.Add("branch_code", "test");
  186. // 支行名称
  187. // obj.Add("branch_name", "test");
  188. // 结算账户名
  189. // obj.Add("card_name", "test");
  190. // 银行卡号
  191. // obj.Add("card_no", "test");
  192. // 卡类型
  193. // obj.Add("card_type", "test");
  194. // 银行所在省
  195. // obj.Add("prov_id", "");
  196. // 银行所在市
  197. // obj.Add("area_id", "");
  198. // 银行绑定手机号
  199. // obj.Add("mp", "");
  200. // 默认卡标识
  201. // obj.Add("default_cash_flag", "");
  202. // 用户授权协议版本号
  203. // obj.Add("auth_version", "");
  204. // 用户授权协议号
  205. // obj.Add("auth_no", "");
  206. JArray objList = new JArray();
  207. objList.Add(JToken.FromObject(obj));
  208. return JsonConvert.SerializeObject(objList);
  209. }
  210. private static string getElecAcctConfig() {
  211. Dictionary<string, object> obj = new Dictionary<string, object>();
  212. // 电子账户开关
  213. // obj.Add("switch_state", "test");
  214. // 账户类型
  215. // obj.Add("acct_type", "test");
  216. // 电子账户提现手续费承担方
  217. // obj.Add("cash_fee_party", "test");
  218. // 场景
  219. // obj.Add("scene", "test");
  220. // 角色类型(角色编号)
  221. // obj.Add("role_type", "test");
  222. // 电子账户开通状态
  223. // obj.Add("bank_status", "test");
  224. // 银行卡信息
  225. // obj.Add("**elec_card_list**", getElecCardList());
  226. // 银行信息
  227. // obj.Add("bank_message", "");
  228. return JsonConvert.SerializeObject(obj);
  229. }
  230. private static string getLjhData() {
  231. Dictionary<string, object> obj = new Dictionary<string, object>();
  232. // 税源地id当合作平台为乐接活,必填
  233. // obj.Add("tax_area_id", "test");
  234. return JsonConvert.SerializeObject(obj);
  235. }
  236. }
  237. }