V2MerchantBasicdataIndvRequestDemo.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  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 V2MerchantBasicdataIndvRequestDemo
  16. {
  17. public static void V2MerchantBasicdataIndvRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2MerchantBasicdataIndvRequest request = new V2MerchantBasicdataIndvRequest();
  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("6666000107803321");
  29. // 商户名
  30. request.setRegName("张天德");
  31. // 经营省
  32. request.setProvId("310000");
  33. // 经营市
  34. request.setAreaId("310100");
  35. // 经营区
  36. request.setDistrictId("310105");
  37. // 经营详细地址
  38. request.setDetailAddr("上海市长宁区定西路1310号");
  39. // 联系人姓名
  40. request.setContactName("张天德");
  41. // 联系人手机号
  42. request.setContactMobileNo("13111112222");
  43. // 联系人电子邮箱
  44. request.setContactEmail("jeff.peng@huifu.com");
  45. // 结算卡信息配置
  46. request.setCardInfo(getCardInfo());
  47. // 设置非必填字段
  48. Dictionary<string, object> extendInfoMap = getExtendInfos();
  49. request.setExtendInfo(extendInfoMap);
  50. try {
  51. // 3. 发起API调用
  52. // 调用接口,使用默认商户配置时可省略配置key
  53. Dictionary<string, Object> result = null;
  54. result = BasePayClient.postRequest(request,null);
  55. // 使用指定配置调用接口
  56. // result = BasePayClient.postRequest(request,null,"merchantKey2");
  57. Console.WriteLine(JsonConvert.SerializeObject(result));
  58. }
  59. catch (Exception ex) {
  60. Console.WriteLine(ex);
  61. }
  62. }
  63. /**
  64. * 非必填字段
  65. * @return
  66. */
  67. private static Dictionary<string, object> getExtendInfos() {
  68. // 设置非必填字段
  69. Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
  70. // 商户简称
  71. extendInfoMap.Add("short_name", "张天德");
  72. // 商户通知标识
  73. extendInfoMap.Add("sms_send_flag", "1");
  74. // 管理员账号
  75. extendInfoMap.Add("login_name", "tinysword0116");
  76. // 取现信息配置
  77. extendInfoMap.Add("cash_config", getCashConfig());
  78. // 结算规则配置
  79. extendInfoMap.Add("settle_config", getSettleConfig());
  80. // 异步通知地址
  81. extendInfoMap.Add("async_return_url", "http://192.168.85.157:30031/sspm/testVirgo");
  82. // D1结算协议图片文件
  83. extendInfoMap.Add("settle_agree_pic", "119bc780-b1c5-3a9c-8b18-f911de6ff28c");
  84. // 商户主页URL
  85. // extendInfoMap.Add("mer_url", "");
  86. // 商户ICP备案编号
  87. // extendInfoMap.Add("mer_icp", "");
  88. // 结算卡反面
  89. // extendInfoMap.Add("settle_card_back_pic", "");
  90. // 结算卡正面
  91. // extendInfoMap.Add("settle_card_front_pic", "");
  92. // 法人身份证反面
  93. // extendInfoMap.Add("legal_cert_back_pic", "");
  94. // 法人身份证正面
  95. // extendInfoMap.Add("legal_cert_front_pic", "");
  96. // 授权委托书
  97. // extendInfoMap.Add("auth_enturst_pic", "");
  98. return extendInfoMap;
  99. }
  100. private static string getCardInfo() {
  101. Dictionary<string, object> obj = new Dictionary<string, object>();
  102. // 卡户名
  103. obj.Add("card_name", "张天德");
  104. // 结算账号
  105. obj.Add("card_no", "4367421217494235081");
  106. // 银行所在省
  107. obj.Add("prov_id", "310000");
  108. // 银行所在市
  109. obj.Add("area_id", "310100");
  110. // 持卡人证件类型
  111. obj.Add("cert_type", "00");
  112. // 持卡人证件号码
  113. obj.Add("cert_no", "321084198912066512");
  114. // 持卡人证件有效期类型
  115. obj.Add("cert_validity_type", "0");
  116. // 持卡人证件有效期开始
  117. obj.Add("cert_begin_date", "20180824");
  118. // 持卡人证件有效期截止日期格式yyyyMMdd,以北京时间为准。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:20220125&lt;/font&gt;&lt;br/&gt;当cert_validity_type&#x3D;0时必填 &lt;br/&gt;当cert_validity_type&#x3D;1时为空
  119. obj.Add("cert_end_date", "20380824");
  120. // 结算人手机号
  121. obj.Add("mp", "13700000214");
  122. // 银行编号
  123. obj.Add("bank_code", "01030000");
  124. return JsonConvert.SerializeObject(obj);
  125. }
  126. private static string getCashConfig() {
  127. Dictionary<string, object> obj = new Dictionary<string, object>();
  128. // 取现类型
  129. obj.Add("cash_type", "D1");
  130. // 取现固定手续费(元)fix_amt与fee_rate至少填写一项,单位元,需保留小数点后两位,不收费请填写0.00; &lt;font color&#x3D;&quot;green&quot;&gt;示例值:1.00&lt;/font&gt;
  131. obj.Add("fix_amt", "1.00");
  132. // 取现手续费率(%)fix_amt与fee_rate至少填写一项,单位%,需保留小数点后两位,取值范围[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
  133. obj.Add("fee_rate", "");
  134. // 是否交易手续费外扣
  135. // obj.Add("out_fee_flag", "");
  136. // 手续费承担方
  137. // obj.Add("out_fee_huifu_id", "");
  138. // 交易手续费外扣的账户类型
  139. // obj.Add("out_fee_acct_type", "");
  140. JArray objList = new JArray();
  141. objList.Add(JToken.FromObject(obj));
  142. return JsonConvert.SerializeObject(objList);
  143. }
  144. private static string getSettleConfig() {
  145. Dictionary<string, object> obj = new Dictionary<string, object>();
  146. // 结算周期
  147. obj.Add("settle_cycle", "D1");
  148. // 结算手续费外扣商户号结算手续费外扣商户号,填写承担手续费的汇付商户号&lt;br/&gt;当out_settle_flag&#x3D;1时必填,否则非必填;&lt;font color&#x3D;&quot;green&quot;&gt;示例值:6666000123123123&lt;/font&gt;
  149. obj.Add("out_settle_huifuid", "");
  150. // 起结金额
  151. obj.Add("min_amt", "1.00");
  152. // 留存金额
  153. obj.Add("remained_amt", "2.00");
  154. // 结算摘要
  155. obj.Add("settle_abstract", "我这里显示结算摘要");
  156. // 手续费外扣标记
  157. obj.Add("out_settle_flag", "2");
  158. // 结算手续费外扣账户类型
  159. // obj.Add("out_settle_acct_type", "");
  160. // 节假日结算手续费率(%)
  161. obj.Add("fixed_ratio", "5.00");
  162. // 结算方式
  163. // obj.Add("settle_pattern", "");
  164. // 结算批次号
  165. // obj.Add("settle_batch_no", "");
  166. // 是否优先到账
  167. // obj.Add("is_priority_receipt", "");
  168. // 自定义结算处理时间
  169. // obj.Add("settle_time", "");
  170. // 节假日结算手续费固定金额(元)
  171. // obj.Add("constant_amt", "");
  172. return JsonConvert.SerializeObject(obj);
  173. }
  174. }
  175. }