V2TradePayafteruseCreditbizorderCreateRequestDemo.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 V2TradePayafteruseCreditbizorderCreateRequestDemo
  16. {
  17. public static void V2TradePayafteruseCreditbizorderCreateRequestDemoTest()
  18. {
  19. // 1. 数据初始化
  20. InitMerConfig.init();
  21. // 2.组装请求参数
  22. V2TradePayafteruseCreditbizorderCreateRequest request = new V2TradePayafteruseCreditbizorderCreateRequest();
  23. // 请求流水号
  24. request.setReqSeqId(DateTime.Now.ToString("yyy-MM-dd HH.mm.ss.fff"));
  25. // 请求日期
  26. request.setReqDate(DateTime.Now.ToString("yyyyMMdd"));
  27. // 商户号
  28. request.setHuifuId("6666000108281250");
  29. // 订单总金额
  30. request.setTransAmt("0.01");
  31. // 追踪ID
  32. request.setSourceId("MjA4ODcwMjY5OTkwODI1N3wyMDIxMDAzMTUwNjM4MTE2fDE3Mjg1NDk3OTU0OTl8ZmFsc2V8VE9LRU5fSVNfTlVMTA==");
  33. // 支付宝用户ID
  34. request.setBuyerId("2088000000000000");
  35. // 订单标题
  36. request.setTitle("测试001");
  37. // 订单类型
  38. request.setMerchantBizType("INDIRECT_CHARGE_WITHHOLD");
  39. // 订单详情地址
  40. request.setPath("https://www.baidu.com/");
  41. // 芝麻信用服务ID
  42. request.setZmServiceId("2024081500001003000081751200");
  43. // 商品详细信息
  44. request.setItemInfos(getItemInfos());
  45. // 设置非必填字段
  46. Dictionary<string, object> extendInfoMap = getExtendInfos();
  47. request.setExtendInfo(extendInfoMap);
  48. try
  49. {
  50. // 3. 发起API调用
  51. // 调用接口,使用默认商户配置时可省略配置key
  52. Dictionary<string, Object> result = null;
  53. result = BasePayClient.postRequest(request, null);
  54. // 使用指定配置调用接口
  55. // result = BasePayClient.postRequest(request,null,"merchantKey2");
  56. Console.WriteLine(JsonConvert.SerializeObject(result));
  57. }
  58. catch (Exception ex)
  59. {
  60. Console.WriteLine(ex);
  61. }
  62. }
  63. /**
  64. * 非必填字段
  65. * @return
  66. */
  67. private static Dictionary<string, object> getExtendInfos()
  68. {
  69. // 设置非必填字段
  70. Dictionary<string, object> extendInfoMap = new Dictionary<string, object>();
  71. // 异步通知地址
  72. extendInfoMap.Add("notify_url", "https://mock.uutool.cn/4pga0jqv8vv0");
  73. // 支付宝交易号
  74. extendInfoMap.Add("trade_no", "2024092722001408251414114417");
  75. // 代扣协议签约场景
  76. extendInfoMap.Add("deduct_sign_scene", "INDUSTRY|XIANXIANG_BIKE_CHARGE");
  77. // 芝麻信用外部类⽬
  78. extendInfoMap.Add("zm_category_id", "credit_pay_for_battery_charging");
  79. return extendInfoMap;
  80. }
  81. private static object getItemInstallmentInfo()
  82. {
  83. Dictionary<string, object> obj = new Dictionary<string, object>();
  84. // 总分期数
  85. obj.Add("period_num", 1);
  86. // 每期最大金额
  87. obj.Add("period_max_price", 0.30);
  88. // 每期金额
  89. // obj.Add("period_price", "");
  90. return obj;
  91. }
  92. private static string getItemInfos()
  93. {
  94. Dictionary<string, object> obj = new Dictionary<string, object>();
  95. // 商户商品ID
  96. obj.Add("out_item_id", "1234567");
  97. // 商品名称
  98. obj.Add("goods_name", "快充");
  99. // 商品数量
  100. obj.Add("item_cnt", "1");
  101. // 商品单价
  102. obj.Add("sale_price", "0.30");
  103. // 商品的编号
  104. obj.Add("goods_id", "Ldkc00001");
  105. // 商品分期信息
  106. obj.Add("item_installment_info", getItemInstallmentInfo());
  107. JArray objList = new JArray();
  108. objList.Add(JToken.FromObject(obj));
  109. return JsonConvert.SerializeObject(objList);
  110. }
  111. }
  112. }