V2MerchantBasicdataModifyRequestDemo.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  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 V2MerchantBasicdataModifyRequestDemo
  16. {
  17. public static void V2MerchantBasicdataModifyRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2MerchantBasicdataModifyRequest request = new V2MerchantBasicdataModifyRequest();
  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("6666000021000000");
  29. // 汇付客户Id
  30. request.setHuifuId("6666000107932702");
  31. // 设置非必填字段
  32. Dictionary<string, object> extendInfoMap = getExtendInfos();
  33. request.setExtendInfo(extendInfoMap);
  34. try {
  35. // 3. 发起API调用
  36. // 调用接口,使用默认商户配置时可省略配置key
  37. Dictionary<string, Object> result = null;
  38. result = BasePayClient.postRequest(request,null);
  39. // 使用指定配置调用接口
  40. // result = BasePayClient.postRequest(request,null,"merchantKey2");
  41. Console.WriteLine(JsonConvert.SerializeObject(result));
  42. }
  43. catch (Exception ex) {
  44. Console.WriteLine(ex);
  45. }
  46. }
  47. /**
  48. * 非必填字段
  49. * @return
  50. */
  51. private static Dictionary<string, object> getExtendInfos() {
  52. // 设置非必填字段
  53. Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
  54. // 商户简称
  55. extendInfoMap.Add("short_name", "尼博网络");
  56. // 营业执照类型
  57. // extendInfoMap.Add("license_type", "");
  58. // 营业执照有效期类型
  59. extendInfoMap.Add("license_validity_type", "0");
  60. // 营业执照有效期开始日期
  61. extendInfoMap.Add("license_begin_date", "20200814");
  62. // 营业执照有效期截止日期
  63. extendInfoMap.Add("license_end_date", "20400813");
  64. // 注册省
  65. extendInfoMap.Add("reg_prov_id", "310000");
  66. // 注册市
  67. extendInfoMap.Add("reg_area_id", "310100");
  68. // 注册区
  69. extendInfoMap.Add("reg_district_id", "310120");
  70. // 注册详细地址
  71. extendInfoMap.Add("reg_detail", "台州市宜山路700解放2路715");
  72. // 法人姓名
  73. extendInfoMap.Add("legal_name", "沈荣");
  74. // 法人证件类型
  75. extendInfoMap.Add("legal_cert_type", "00");
  76. // 法人证件号码
  77. extendInfoMap.Add("legal_cert_no", "320923199111206319");
  78. // 法人证件有效期类型
  79. extendInfoMap.Add("legal_cert_validity_type", "0");
  80. // 法人证件有效期开始日期
  81. extendInfoMap.Add("legal_cert_begin_date", "20200814");
  82. // 法人证件有效期截止日期
  83. extendInfoMap.Add("legal_cert_end_date", "20400813");
  84. // 经营省
  85. extendInfoMap.Add("prov_id", "310000");
  86. // 经营市
  87. extendInfoMap.Add("area_id", "310100");
  88. // 经营区
  89. extendInfoMap.Add("district_id", "310105");
  90. // 经营详细地址
  91. extendInfoMap.Add("detail_addr", "徐州市徐汇区宜山路7497号");
  92. // 联系人姓名
  93. extendInfoMap.Add("contact_name", "我是联系人");
  94. // 联系人手机号
  95. extendInfoMap.Add("contact_mobile_no", "15556622331");
  96. // 联系人电子邮箱
  97. extendInfoMap.Add("contact_email", "mei.zhang@huifu.com");
  98. // 客服电话
  99. extendInfoMap.Add("service_phone", "15556622368");
  100. // 小票名称
  101. extendInfoMap.Add("receipt_name", "小票上的名称");
  102. // 所属行业(MCC)
  103. extendInfoMap.Add("mcc", "5411");
  104. // 结算卡信息配置
  105. extendInfoMap.Add("card_info", getCardInfo());
  106. // 取现信息配置
  107. extendInfoMap.Add("cash_config", getCashConfig());
  108. // 结算规则配置
  109. extendInfoMap.Add("settle_config", getSettleConfig());
  110. // 异步通知地址
  111. extendInfoMap.Add("async_return_url", "archer://C_SSPM_NSPOSM_BUSIRESULT");
  112. // D1结算协议图片文件
  113. // extendInfoMap.Add("settle_agree_pic", "");
  114. // 商户英文名称
  115. // extendInfoMap.Add("mer_en_name", "");
  116. // 商户主页URL
  117. // extendInfoMap.Add("mer_url", "");
  118. // 商户ICP备案编号
  119. // extendInfoMap.Add("mer_icp", "");
  120. // 基本存款账户编号或核准号
  121. // extendInfoMap.Add("open_licence_no", "");
  122. // 签约人
  123. // extendInfoMap.Add("sign_user_info", getSignUserInfo());
  124. // 营业执照图片
  125. // extendInfoMap.Add("license_pic", "");
  126. // 授权委托书
  127. // extendInfoMap.Add("auth_enturst_pic", "");
  128. // 组织机构代码证
  129. // extendInfoMap.Add("org_code_pic", "");
  130. // 税务登记证
  131. // extendInfoMap.Add("tax_reg_pic", "");
  132. return extendInfoMap;
  133. }
  134. private static string getCardInfo() {
  135. Dictionary<string, object> obj = new Dictionary<string, object>();
  136. // 结算账户类型
  137. obj.Add("card_type", "0");
  138. // 结算账户名
  139. obj.Add("card_name", "上海尼博网络科技有限公司");
  140. // 结算账号
  141. obj.Add("card_no", "1001265009300682579");
  142. // 银行所在省参考[地区编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_dqbm);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:310000 &lt;/font&gt;;如修改省市要级联修改&lt;br/&gt;当card_type&#x3D;0时非必填, 当card_type&#x3D;1或2时必填
  143. obj.Add("prov_id", "310000");
  144. // 银行所在市参考[地区编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_dqbm);&lt;font color&#x3D;&quot;green&quot;&gt;示例值:310100 &lt;/font&gt;;如修改省市要级联修改&lt;br/&gt;当card_type&#x3D;0时非必填, 当card_type&#x3D;1或2时必填
  145. obj.Add("area_id", "310100");
  146. // 支行联行号参考:[银行支行编码](https://paas.huifu.com/open/doc/api/#/csfl/api_csfl_yhzhbm) 当card_type&#x3D;0时必填, 当card_type&#x3D;1或2时非必填 &lt;font color&#x3D;&quot;green&quot;&gt;示例值:102290026507&lt;/font&gt;
  147. obj.Add("branch_code", "102290026507");
  148. // 持卡人证件类型持卡人证件类型,参见《[自然人证件类型](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)》。&lt;br/&gt; 当card_type&#x3D;0时为空, 当card_type&#x3D;1或2时必填; &lt;font color&#x3D;&quot;green&quot;&gt;示例值:00&lt;/font&gt;
  149. obj.Add("cert_type", "00");
  150. // 持卡人证件有效期类型0:非长期有效, 1:长期有效, &lt;font color&#x3D;&quot;green&quot;&gt;示例值:0&lt;/font&gt;&lt;br/&gt;当card_type&#x3D;0时为空; 当card_type&#x3D;1或2时必填;
  151. obj.Add("cert_validity_type", "0");
  152. // 持卡人证件有效期开始日期日期格式:yyyyMMdd,以北京时间为准; 当card_type&#x3D;0时为空, 当card_type&#x3D;1或2时必填, &lt;font color&#x3D;&quot;green&quot;&gt;示例值:20220125 &lt;/font&gt;
  153. obj.Add("cert_begin_date", "20180106");
  154. // 持卡人证件有效期截止日期日期格式:yyyyMMdd,以北京时间为准。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:20220125&lt;/font&gt;&lt;br/&gt; 当cert_validity_type&#x3D;0时必填;当cert_validity_type&#x3D;1时为空
  155. obj.Add("cert_end_date", "20380106");
  156. // 开户许可证开户许可证图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F08;&lt;br/&gt;企业商户需要,结算账号为对公账户,且开通全域资金管理必填;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  157. obj.Add("reg_acct_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  158. // 法人身份证正面法人身份证正面图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F02;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529 &lt;/font&gt;
  159. obj.Add("legal_cert_front_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  160. // 法人身份证反面法人身份证反面图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F03;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  161. obj.Add("legal_cert_back_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  162. // 公司照片一公司照片一图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F22(店铺门头照);&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  163. obj.Add("comp_pic1", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  164. // 公司照片二公司照片二图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F24(店铺内景照);&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  165. obj.Add("comp_pic2", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  166. // 公司照片三公司照片三图片文件,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F105(店铺收银台或前台);&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  167. obj.Add("comp_pic3", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  168. // 结算卡正面结算卡正面图片文件对私结算必填,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F13;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  169. obj.Add("settle_card_front_pic", "1277-85c6-3177-ac3d-a8be47b9ae9d");
  170. // 结算卡反面结算卡反面图片文件对私结算必填,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F14;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  171. obj.Add("settle_card_back_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  172. // 结算人身份证正面结算人身份证正面图片文件对私结算必填,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F55;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529&lt;/font&gt;
  173. obj.Add("settle_cert_front_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  174. // 结算人身份证反面结算人身份证反面图片文件对私结算必填,请填写图片file_id,可通过 [商户图片上传](https://paas.huifu.com/open/doc/api/#/shgl/shjj/api_shjj_shtpsc) 接口获取,文件类型F56;&lt;br/&gt;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:57cc7f00-600a-33ab-b614-6221bbf2e529 &lt;/font&gt;
  175. obj.Add("settle_cert_back_pic", "d1451277-85c6-3177-ac3d-a8be47b9ae9d");
  176. // 银行编码
  177. obj.Add("bank_code", "01020000");
  178. // 开户支行名称
  179. obj.Add("branch_name", "中国工商银行股份有限公司上海市中山北路支行");
  180. // 持卡人证件号码
  181. obj.Add("cert_no", "320923199111206319");
  182. // 结算人手机号
  183. obj.Add("mp", "18221987178");
  184. return JsonConvert.SerializeObject(obj);
  185. }
  186. private static string getCashConfig() {
  187. Dictionary<string, object> obj = new Dictionary<string, object>();
  188. // 状态
  189. obj.Add("switch_state", "1");
  190. // 取现手续费率(%)fix_amt与fee_rat至少填写一项,单位%,需保留小数点后两位,取值范围[0.00,100.00],不收费请填写0.00;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:0.05&lt;/font&gt;&lt;br/&gt;注:如果fix_amt与fee_rate都填写了则手续费&#x3D;fix_amt+支付金额\*fee_rate
  191. obj.Add("fee_rate", "5.50");
  192. // 业务类型
  193. obj.Add("cash_type", "D0");
  194. // 提现手续费(固定/元)
  195. obj.Add("fix_amt", "4.00");
  196. // 是否交易手续费外扣
  197. // obj.Add("out_fee_flag", "");
  198. // 手续费承担方
  199. // obj.Add("out_fee_huifu_id", "");
  200. // 手续费外扣的账户类型
  201. // obj.Add("out_fee_acct_type", "");
  202. JArray objList = new JArray();
  203. objList.Add(JToken.FromObject(obj));
  204. return JsonConvert.SerializeObject(objList);
  205. }
  206. private static string getSettleConfig() {
  207. Dictionary<string, object> obj = new Dictionary<string, object>();
  208. // 结算开关
  209. obj.Add("settle_status", "1");
  210. // 结算周期
  211. obj.Add("settle_cycle", "T1");
  212. // 结算手续费外扣商户号结算手续费外扣商户号,填写承担手续费的汇付商户号;当out_settle_flag&#x3D;1时必填,否则非必填;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:6666000123123123 &lt;/font&gt;
  213. obj.Add("out_settle_huifuid", "6666000003078904");
  214. // 起结金额
  215. obj.Add("min_amt", "3.00");
  216. // 留存金额
  217. obj.Add("remained_amt", "22.00");
  218. // 结算摘要
  219. obj.Add("settle_abstract", "我这里显示结算摘要");
  220. // 手续费外扣标记
  221. obj.Add("out_settle_flag", "2");
  222. // 结算手续费外扣时的账户类型
  223. obj.Add("out_settle_acct_type", "");
  224. // 节假日结算手续费率
  225. obj.Add("fixed_ratio", "2.00");
  226. // 结算批次号
  227. // obj.Add("settle_batch_no", "");
  228. // 结算方式
  229. // obj.Add("settle_pattern", "");
  230. // 是否优先到账
  231. // obj.Add("is_priority_receipt", "");
  232. // 自定义结算处理时间
  233. // obj.Add("settle_time", "");
  234. return JsonConvert.SerializeObject(obj);
  235. }
  236. private static string getSignUserInfo() {
  237. Dictionary<string, object> obj = new Dictionary<string, object>();
  238. // 签约人类型
  239. // obj.Add("type", "test");
  240. // 姓名
  241. // obj.Add("name", "");
  242. // 手机号
  243. // obj.Add("mobile_no", "");
  244. // 身份证
  245. // obj.Add("cert_no", "");
  246. // 身份证照片-人像面
  247. // obj.Add("identity_front_file_id", "");
  248. // 身份证照片-国徽面
  249. // obj.Add("identity_back_file_id", "");
  250. // 法人授权书
  251. // obj.Add("auth_file_id", "");
  252. return JsonConvert.SerializeObject(obj);
  253. }
  254. }
  255. }