V2QuickbuckleWithholdApplyRequestDemo.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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 V2QuickbuckleWithholdApplyRequestDemo
  16. {
  17. public static void V2QuickbuckleWithholdApplyRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2QuickbuckleWithholdApplyRequest request = new V2QuickbuckleWithholdApplyRequest();
  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("6666000003078984");
  29. // 返回地址
  30. request.setReturnUrl("http://www.huifu1234.com/");
  31. // 用户id
  32. request.setOutCustId("16666000106789536");
  33. // 绑卡订单号
  34. request.setOrderId("20230525081932677893621");
  35. // 绑卡订单日期
  36. request.setOrderDate("20230525");
  37. // 银行卡号
  38. request.setCardId("ZSSW+34A2soLbwLQ5SkZJO4Azy6BknTGkk6EYDTbGA+G0v+zcF3TnU4iYH171KB4ReLjJlY+hSy8MvgVbAx7dL9V7LvLFJd8RE+Lp6XKiIbVUCA1wd2Otp2jI2D32z5gUFqUbB4clRZyRyltXV3xmAWH4fLZDER3H+QwC0/UNF4=");
  39. // 银行卡开户姓名 
  40. request.setCardName("H12ShtAyV4I4sOQqbISH4eMQUcmzpYOHggxRcXhxNoForh5qLyFgDrsSTn0nnepnPO8okfZYSWQlWIBzsRyyHYwAk94s2sO2Sz/6q4Jg2xDieeGDGrnrAphc8/OAN2OK8dMdbQzL12MvPQU/GX148MCxJzGvvdRFqTEPRLOLXTs=");
  41. // 银行卡绑定证件类型 
  42. request.setCertType("00");
  43. // 银行卡绑定身份证
  44. request.setCertId("FviSPp2Xv6QYfRSYRZcouGAz4BvfZRS9nFKI/7daIUtn4JmBVMTDtrqKLCWeoY7WP4hQAz3rptjOe8WsuynRG3kQhBsXZB0v6e1X1+POD5FXVojquKQb1BF5tKlaOqTj/+G62URC3SWui26JzQQmjGhCORXXHFD7PPNJKusYhHI=");
  45. // 银行卡绑定手机号 
  46. request.setCardMp("GmMLD+v2Mfc/vr9HOVFKOon3Dl4Q9cjze21X902G8Dnl2/2rpH8wpJUnufoYnI0nR9D2XkOm0ApOJL3ShiZxgLvnTaKrTDjRdrBJexhXbbhbfDx/2x+ZULvZHOEjzRI21tK2WKUzxDhX/lw/iXMjslKNVYlQ7as/aH5bLipf12g=");
  47. // CVV2信用卡代扣专用 需要密文传输,需要密文传输,使用汇付RSA公钥加密(加密前64位,加密后最长2048位),参见[参考文档](https://paas.huifu.com/open/doc/guide/#/api_jiami_jiemi);
  48. request.setVipCode("HOVFKOon3Dl4Q9cjze21X902G8Dnl2LvLFJd8RE+Lp6XKiIbVUCA1wd2Otp2jI2D32z5gUFqUbB4clRZyRyltXV3xmAWH4fLZDER3H+YwAk94s2sO2Sz/6q4Jg2xDieesO2Sz/6q4Jg2xDieeGDGbQzL12MvPQU/GX14xJzGvvd=");
  49. // 卡有效期 信用卡代扣专用,格式:MMYY 需要密文传输,使用汇付RSA公钥加密(加密前64位,加密后最长2048位),参见[参考文档](https://paas.huifu.com/open/doc/guide/#/api_jiami_jiemi);
  50. request.setExpiration("IUtn4JmBVMTDtrqKLCWeoY7WP4hQAz3rptjOe8WsuySW+34SkZJO4Azy6BknTGkk6EA2soLbwLQ5SkZJO4Azy6BknTGkk6EX902G8Dnl2/2rpH8wpJUnufoYnI0nR9YDTbGA+G0v+ApOJL3ShiZxgLvnTaKrnU4iYH171KB4=");
  51. // 个人证件有效期类型
  52. request.setCertValidityType("0");
  53. // 个人证件有效期起始日
  54. request.setCertBeginDate("20140504");
  55. // 个人证件有效期到期日长期有效不填.格式:YYYYMMDD;<font color="green">示例值:20450112</font>
  56. request.setCertEndDate("20260504");
  57. // 卡的借贷类型
  58. // request.setDcType("test");
  59. // 设置非必填字段
  60. Dictionary<string, object> extendInfoMap = getExtendInfos();
  61. request.setExtendInfo(extendInfoMap);
  62. try {
  63. // 3. 发起API调用
  64. // 调用接口,使用默认商户配置时可省略配置key
  65. Dictionary<string, Object> result = null;
  66. result = BasePayClient.postRequest(request,null);
  67. // 使用指定配置调用接口
  68. // result = BasePayClient.postRequest(request,null,"merchantKey2");
  69. Console.WriteLine(JsonConvert.SerializeObject(result));
  70. }
  71. catch (Exception ex) {
  72. Console.WriteLine(ex);
  73. }
  74. }
  75. /**
  76. * 非必填字段
  77. * @return
  78. */
  79. private static Dictionary<string, object> getExtendInfos() {
  80. // 设置非必填字段
  81. Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
  82. // 页面有效期
  83. extendInfoMap.Add("expire_time", "15");
  84. // 设备信息域
  85. extendInfoMap.Add("trx_device_info", getTrxDeviceInfo());
  86. // 风控信息
  87. extendInfoMap.Add("risk_info", getRiskInfo());
  88. return extendInfoMap;
  89. }
  90. private static object getTrxDeviceInfo() {
  91. Dictionary<string, object> obj = new Dictionary<string, object>();
  92. // 银行预留手机号
  93. obj.Add("trx_mobile_num", "15556622368");
  94. // 设备类型
  95. obj.Add("trx_device_type", "1");
  96. // 交易设备IP
  97. obj.Add("trx_device_ip", "10.10.0.1");
  98. // 交易设备MAC
  99. obj.Add("trx_device_mac", "10.10.0.1");
  100. // 交易设备IMEI
  101. obj.Add("trx_device_imei", "030147441006000182623");
  102. // 交易设备IMSI
  103. obj.Add("trx_device_imsi", "030147441006000182623");
  104. // 交易设备ICCID
  105. obj.Add("trx_device_icc_id", "030147441006000182623");
  106. // 交易设备WIFIMAC
  107. obj.Add("trx_device_wfifi_mac", "030147441006000182623");
  108. // 交易设备GPS
  109. obj.Add("trx_device_gps", "030147441006000182623");
  110. return obj;
  111. }
  112. private static string getRiskInfo() {
  113. Dictionary<string, object> obj = new Dictionary<string, object>();
  114. // IP类型
  115. obj.Add("ip_type", "04");
  116. // IP值
  117. obj.Add("source_ip", "192.168.1.2");
  118. // 设备标识
  119. obj.Add("device_id", "123");
  120. // 设备类型
  121. obj.Add("device_type", "1");
  122. // 银行预留手机号
  123. obj.Add("mobile", "13778787106");
  124. return JsonConvert.SerializeObject(obj);
  125. }
  126. }
  127. }