V2TradePaymentDelaytransConfirmRequestDemo.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 V2TradePaymentDelaytransConfirmRequestDemo
  16. {
  17. public static void V2TradePaymentDelaytransConfirmRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2TradePaymentDelaytransConfirmRequest request = new V2TradePaymentDelaytransConfirmRequest();
  23. // 请求日期
  24. request.setReqDate(DateTime.Now.ToString("yyyyMMdd"));
  25. // 请求流水号
  26. request.setReqSeqId(DateTime.Now.ToString("yyy-MM-dd HH.mm.ss.fff"));
  27. // 商户号
  28. request.setHuifuId("6666000109133323");
  29. // 交易类型**原交易为快捷支付必填:QUICK_PAY**,<br/>**原交易为余额支付必填:ACCT_PAYMENT**;<br/><font color="green">示例值:ACCT_PAYMENT</font>
  30. // request.setPayType("test");
  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("org_req_date", "20220512");
  56. // 原交易请求流水号
  57. extendInfoMap.Add("org_req_seq_id", "20220512195832E06521");
  58. // 原交易商户订单号
  59. // extendInfoMap.Add("org_mer_ord_id", "");
  60. // 原交易全局流水号
  61. extendInfoMap.Add("org_hf_seq_id", "");
  62. // 分账对象
  63. extendInfoMap.Add("acct_split_bunch", getAcctSplitBunch());
  64. // 安全信息
  65. extendInfoMap.Add("risk_check_data", getRiskCheckData());
  66. // 备注
  67. extendInfoMap.Add("remark", "remark123");
  68. // 灵活用工标志
  69. // extendInfoMap.Add("hyc_flag", "");
  70. // 灵活用工平台
  71. // extendInfoMap.Add("lg_platform_type", "");
  72. // 代发模式
  73. // extendInfoMap.Add("salary_modle_type", "");
  74. // 落地公司商户号
  75. // extendInfoMap.Add("bmember_id", "");
  76. // 乐接活请求参数集合
  77. // extendInfoMap.Add("ljh_data", getLjhData());
  78. // 异步通知地址
  79. // extendInfoMap.Add("notify_url", "");
  80. return extendInfoMap;
  81. }
  82. private static object getAcctInfosRucan() {
  83. Dictionary<string, object> obj = new Dictionary<string, object>();
  84. // 分账金额(元)单位元,需保留小数点后两位,最低传入0.01 ,&lt;font color&#x3D;&quot;green&quot;&gt;示例值:1.00&lt;/font&gt; ,percentage_flag非Y时必填;&lt;br/&gt;percentage_flag&#x3D;Y时div_amt不填,div_amt&#x3D;total_div_amt*percentage_div
  85. obj.Add("div_amt", "0.01");
  86. // 分账接收方ID
  87. obj.Add("huifu_id", "6666000109133323");
  88. // 分账百分比%
  89. // obj.Add("percentage_div", "");
  90. // 分账接收方账户号
  91. // obj.Add("acct_id", "");
  92. JArray objList = new JArray();
  93. objList.Add(JToken.FromObject(obj));
  94. return objList;
  95. }
  96. private static string getAcctSplitBunch() {
  97. Dictionary<string, object> obj = new Dictionary<string, object>();
  98. // 分账总金额(元)本次交易确认总额。需保留小数点后两位&lt;br/&gt;percentage_flag&#x3D;Y时必填。该金额与分账百分比用来计算分账金额。&lt;font color&#x3D;&quot;green&quot;&gt;示例值:10.00&lt;/font&gt;;
  99. // obj.Add("total_div_amt", "test");
  100. // 百分比分账标志
  101. // obj.Add("percentage_flag", "");
  102. // 分账明细
  103. obj.Add("acct_infos", getAcctInfosRucan());
  104. return JsonConvert.SerializeObject(obj);
  105. }
  106. private static string getRiskCheckData() {
  107. Dictionary<string, object> obj = new Dictionary<string, object>();
  108. // ip地址
  109. // obj.Add("ip_addr", "");
  110. // 基站地址
  111. obj.Add("base_station", "3");
  112. // 纬度
  113. obj.Add("latitude", "2");
  114. // 经度
  115. obj.Add("longitude", "1");
  116. // 产品子类
  117. // obj.Add("sub_product", "");
  118. // 转账原因
  119. // obj.Add("transfer_type", "");
  120. return JsonConvert.SerializeObject(obj);
  121. }
  122. private static string getLjhData() {
  123. Dictionary<string, object> obj = new Dictionary<string, object>();
  124. // 税源地ID
  125. // obj.Add("tax_area_id", "");
  126. // 任务模板ID
  127. // obj.Add("template_id", "");
  128. return JsonConvert.SerializeObject(obj);
  129. }
  130. }
  131. }