V2QuickbuckleWithholdPageGetRequestDemo.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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 V2QuickbuckleWithholdPageGetRequestDemo
  16. {
  17. public static void V2QuickbuckleWithholdPageGetRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2QuickbuckleWithholdPageGetRequest request = new V2QuickbuckleWithholdPageGetRequest();
  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("6666000103422897");
  29. // 订单号
  30. request.setOrderId("SAS20230807102136898274149");
  31. // 订单日期
  32. request.setOrderDate("20230807");
  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("expire_time", "20");
  58. // 页面跳转地址
  59. extendInfoMap.Add("return_url", "https://api.huifu.com");
  60. // 客户用户号
  61. extendInfoMap.Add("out_cust_id", "Q837467382819");
  62. // 用户汇付号
  63. extendInfoMap.Add("user_huifu_id", "6666000107386236");
  64. // 异步通知地址
  65. extendInfoMap.Add("notify_url", "https://api.huifu.com");
  66. // 设备信息域
  67. extendInfoMap.Add("trx_device_info", getTrxDeviceInfo());
  68. // 风控信息
  69. extendInfoMap.Add("risk_info", getRiskInfo());
  70. return extendInfoMap;
  71. }
  72. private static string getTrxDeviceInfo() {
  73. Dictionary<string, object> obj = new Dictionary<string, object>();
  74. // 银行预留手机号
  75. obj.Add("trx_mobile_num", "13428722321");
  76. // 设备类型
  77. obj.Add("trx_device_type", "1");
  78. // 交易设备IP
  79. obj.Add("trx_device_ip", "192.168.1.1");
  80. // 交易设备MAC
  81. obj.Add("trx_device_mac", "10.10.0.1");
  82. // 交易设备IMEI
  83. obj.Add("trx_device_imei", "imei");
  84. // 交易设备IMSI
  85. obj.Add("trx_device_imsi", "imsi");
  86. // 交易设备ICCID
  87. obj.Add("trx_device_icc_id", "icc");
  88. // 交易设备WIFIMAC
  89. obj.Add("trx_device_wfifi_mac", "wfifi");
  90. // 交易设备GPS
  91. obj.Add("trx_device_gps", "gps");
  92. return JsonConvert.SerializeObject(obj);
  93. }
  94. private static string getRiskInfo() {
  95. Dictionary<string, object> obj = new Dictionary<string, object>();
  96. // IP类型
  97. obj.Add("ip_type", "04");
  98. // IP值
  99. obj.Add("source_ip", "1.1.1.1");
  100. // 设备标识
  101. obj.Add("device_id", "");
  102. // 设备类型
  103. obj.Add("device_type", "");
  104. // 银行预留手机号
  105. obj.Add("mobile", "");
  106. return JsonConvert.SerializeObject(obj);
  107. }
  108. }
  109. }