瑞宏网订单接口示例程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Program.cs 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. using System;
  2. using System.Collections.Generic;
  3. using com.chinaeinv.einv.order;
  4. using com.chinaeinv.einv.order.dto;
  5. using System.Collections;
  6. namespace einv_demo_order_cs
  7. {
  8. class Program
  9. {
  10. // 由电子发票平台分配的appCode
  11. private static string appCode = "请向瑞宏网工作人员索取";
  12. // 证书文件路径
  13. private static string keyStorePath = "请向瑞宏网工作人员索取";
  14. // 证书密码
  15. private static string password = "请向瑞宏网工作人员索取";
  16. // 接口URL
  17. private static string apiUrl = "https://www.chinaeinv.com:943/igs/api/orderApi.jspa";
  18. // 销售方纳税人识别号
  19. private static string testTaxpayerCode = "请向瑞宏网工作人员索取";
  20. private static OrderFacade orderFacade = new OrderFacadeAgent(appCode, keyStorePath, password, apiUrl);
  21. static void Main(string[] args)
  22. {
  23. // (异步)开具蓝字发票
  24. TestKpAsync();
  25. // (异步)开具红字发票
  26. //TestChAsync();
  27. // (异步)对开票失败的订单重新开票
  28. //TestRetryKpAsync();
  29. // (同步)取消订单
  30. //TestCancel();
  31. // (同步)根据订单编号查询发票
  32. //TestCxByOrderNo();
  33. Console.WriteLine("按回车键退出。");
  34. Console.ReadLine(); //等待用户按一个回车
  35. return; //可选,按下回车后关闭
  36. }
  37. /**
  38. * (异步)开具蓝字发票
  39. */
  40. private static void TestKpAsync()
  41. {
  42. Order order = new Order();
  43. // 订单编号
  44. order.orderNo = "OrderNo-007";
  45. // 销货方纳税人识别号
  46. order.taxpayerCode = testTaxpayerCode;
  47. // 用户扫码key
  48. order.scanCodeKey = Guid.NewGuid().ToString();
  49. // 店铺
  50. order.shopName = "第198店";
  51. // 店铺编号
  52. order.shopCode = "198";
  53. // 订单时间(yyyy-MM-dd HH:mm:ss)
  54. order.orderTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  55. // 联系人
  56. order.contact = "小明";
  57. // 联系电话
  58. order.contactTel = "18000000000";
  59. // 邮箱
  60. order.contactMail = "test@chinaeinv.cn";
  61. // 配送地址
  62. order.shippingAddress = "火星北路1024号";
  63. // 购货方名称,即发票抬头
  64. order.customerName = "小明";
  65. // 是否自动开票
  66. order.autoBilling = true;
  67. // 开票人
  68. order.drawer = "张三";
  69. // 收款人
  70. order.payee = "李四";
  71. // 复核人
  72. order.reviewer = "王五";
  73. // 开票金额
  74. order.totalAmount = "24000";
  75. // 发票备注
  76. order.remark = "软件系统维护期限为2018年1月1日至2019年12月31日。";
  77. // 发票明细1
  78. OrderItem orderItem1 = new OrderItem();
  79. //商品编码
  80. orderItem1.code = "001";
  81. //商品名称
  82. orderItem1.name = "软件开发";
  83. //规格型号
  84. orderItem1.spec = "无";
  85. //税率
  86. orderItem1.taxRate = "0.06";
  87. //税价合计金额
  88. orderItem1.amount = "10000";
  89. //商品分类编码
  90. orderItem1.catalogCode = "3040203000000000000";
  91. // 发票明细2
  92. OrderItem orderItem2 = new OrderItem();
  93. //商品编码
  94. orderItem2.code = "002";
  95. //商品名称
  96. orderItem2.name = "软件系统维护";
  97. //规格型号
  98. orderItem2.spec = "无";
  99. //商品单价
  100. orderItem2.price = "8000";
  101. //数量
  102. orderItem2.quantity = "2";
  103. //单位
  104. orderItem2.uom = "年";
  105. //税率
  106. orderItem2.taxRate = "0.06";
  107. //税价合计金额
  108. orderItem2.amount = "16000";
  109. //折扣金额
  110. orderItem2.discountAmount = "2000";
  111. //商品分类编码
  112. orderItem2.catalogCode = "3040203000000000000";
  113. // 发票明细
  114. order.orderItems = new List<OrderItem>();
  115. order.orderItems.Add(orderItem1);
  116. order.orderItems.Add(orderItem2);
  117. // 扩展参数
  118. order.extendedParams = new Hashtable();
  119. order.extendedParams.Add("testExtendedNo1", "12345678");
  120. order.extendedParams.Add("testExtendedNo2", "87654321");
  121. // 调用接口方法
  122. orderFacade.KpAsync(order);
  123. }
  124. /**
  125. * (异步)开具红字发票
  126. */
  127. private static void TestChAsync()
  128. {
  129. Order order = new Order();
  130. // 订单编号
  131. order.orderNo = "OrderNo-006";
  132. // 销货方纳税人识别号
  133. order.taxpayerCode = testTaxpayerCode;
  134. // 冲红原因
  135. order.reason = "开票信息有误。";
  136. // 调用接口方法
  137. orderFacade.ChAsync(order);
  138. }
  139. /**
  140. * (异步)对开票失败的订单重新开票
  141. */
  142. private static void TestRetryKpAsync()
  143. {
  144. OrderBase order = new OrderBase();
  145. // 订单编号
  146. order.orderNo = "OrderNo-004";
  147. // 销货方纳税人识别号
  148. order.taxpayerCode = testTaxpayerCode;
  149. // 调用接口方法
  150. orderFacade.RetryKpAsync(order);
  151. }
  152. /**
  153. * (同步)取消订单
  154. */
  155. private static void TestCancel()
  156. {
  157. OrderBase order = new OrderBase();
  158. // 订单编号
  159. order.orderNo = "OrderNo-004";
  160. // 销货方纳税人识别号
  161. order.taxpayerCode = testTaxpayerCode;
  162. // 调用接口方法
  163. orderFacade.Cancel(order);
  164. }
  165. /**
  166. * (同步)根据订单编号查询发票
  167. */
  168. private static void TestCxByOrderNo()
  169. {
  170. OrderBase orderBase = new OrderBase("OrderNo-006", testTaxpayerCode);
  171. // 调用接口方法
  172. orderFacade.CxByOrderNo(orderBase);
  173. }
  174. }
  175. }