下载压缩包包含的内容:
文件名 | 功能描述 |
DigitalScience.ETicket.ApiHelper.dll | 用于访问电子门票系统接口 |
LON_HAWK.dll | Hawk认证 |
LON_HAWK_WEBAPI.dll | Hawk认证 |
TourWebApi.Models.Param.dll | 用于构造访问电子系统交易接口的参数 |
TourWebApi.Models.Result.dll | 用于接收电子系统交易接口返回的参数 |
第一步:创建一个开发项目
第二步:引用下载的DLL
示例一:发起预定
using DigitalScience.ETicket.ApiHelper; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using TourWebApi.Models.Param; using TourWebApi.Models.Result; namespace DigitalScience.ETicket.Site.Jq.Controllers { public class TicketChatConfirmController : Controller { #region AddOrder /// <summary> /// 发起预定 /// </summary> /// <param name="orderlist">预定明细信息</param> /// <param name="mobile">主要联系人手机号码</param> /// <param name="idcard">主要联系人身份证</param> /// <param name="ticketdate">预定的生效日期</param> /// <param name="needinvoice">是否需要发票,默认0:不需要</param> /// <param name="servicecode">服务ID</param> /// <param name="tripbillcode">行程单号</param> /// <returns></returns> public ActionResult AddOrder(string orderlist, string mobile, string idcard, string ticketdate, string needinvoice = "0", string servicecode = "",string tripbillcode ="") { //登录验证 #region 参数验证 if (string.IsNullOrWhiteSpace(mobile)) { //TODO:手机号码参数错误时的操作 } if (string.IsNullOrWhiteSpace(ticketdate)) { //TODO:生效日期参数错误时的操作 } if (ticketdate.Length != 8) { //TODO:生效日期参数格式错误时的操作 } if (string.IsNullOrWhiteSpace(orderlist)) { //TODO:生效日期订单信息错误的操作 } #endregion //构造发起预定的的参数 OrderAddParm parm = new OrderAddParm(); parm.mobile = mobile; parm.identificationnumber = idcard; parm.effectdate = ticketdate; parm.needinvoice = needinvoice; parm.tripbillcode = tripbillcode; parm.guidernumber = ""; parm.servicecode = servicecode; parm.invoicecode = ""; parm.invoicetitle = ""; parm.marketareaid = ""; string[] order = orderlist.Split('|'); List<OrderAddItemParm> parmlist = new List<OrderAddItemParm>(); foreach (string list in order) { string[] orderlists = list.Split('^'); OrderAddItemParm orderadditemparm = new OrderAddItemParm(); orderadditemparm.productid = orderlists[3]; orderadditemparm.amount = int.Parse(orderlists[6]); orderadditemparm.identificationnumber = orderlists[0]; orderadditemparm.fullname = orderlists[1]; orderadditemparm.identificationtype = orderlists[4]; orderadditemparm.mobile = orderlists[2]; orderadditemparm.gateinmode = orderlists[5]; parmlist.Add(orderadditemparm); } parm.orderdetails = parmlist; long otherid = 0; if (!this.ModelState.IsValid) { //返回参数错误的提示 } try { //创建访问接口的实列 YbxWebApiClient client = new YbxWebApiClient( new Leiouna.Security.Hawk.HawkCredential() { Algorithm = YbxETicketSiteConfig.Algorithm, User = username,/*/ Key = key /*回话秘钥*/ +Md5Helper.UPPER_MD5(password/*登录密码*/), /**/ Id = username,/**/ AdditionalClaims = new System.Security.Claims.Claim[] { new System.Security.Claims.Claim("KEYTYPE","AGENT"), } }, YbxETicketSiteConfig.WebApiRootUri, new TimeSpan(0, 0, 30)); parm.otheruserid = otherid; parm.senderid = ""; //调用接口发起预定 OrderOperatorResult result = client.AddOrder(parm); if (result.resultcode != 0) { //TODO:预定失败时的操作 } //TODO:预定成功时的操作 } catch (Exception ex) { //TODO:发生异常时的操作 } } #endregion } }
示例二:整单退订
using DigitalScience.ETicket.ApiHelper; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using TourWebApi.Models.Param; using TourWebApi.Models.Result; namespace DigitalScience.ETicket.Site.Jq.Controllers { public class OrderListController : Controller { #region TicketRefund /// <summary> /// 整单退订 /// </summary> /// <param name="orderid"></param> /// <param name="ischeck"></param> /// <returns></returns> public ActionResult TicketRefundList(string orderid) { //验证用户是否登录 //参数检查 if (string.IsNullOrWhiteSpace(orderid)) { //TODO:参数为空时的操作 } //构造访问参数 RefundParm refundparm = new RefundParm(); refundparm.orderid = orderid; refundparm.refundallticket = "1"; try { //创建访问接口的实列 YbxWebApiClient client = new YbxWebApiClient( new Leiouna.Security.Hawk.HawkCredential() { Algorithm = YbxETicketSiteConfig.Algorithm, User = username,/*登录用户名*/ Key = key /*回话秘钥*/ +Md5Helper.UPPER_MD5(password/*登录密码*/), /**/ Id = username,/*登录用户名*/ AdditionalClaims = new System.Security.Claims.Claim[] { new System.Security.Claims.Claim("KEYTYPE","AGENT"), } }, YbxETicketSiteConfig.WebApiRootUri, new TimeSpan(0, 0, 30)); //获取整单退订的结果 OperationResult result = client.TicketRefund(refundparm); if (result.errcode != 0) { //TODO:整单退订失败时的操作 } //TODO:整单退订成功时的操作 } catch (Exception ex) { //TODO:整单退订发生异常时的操作 } } #endregion } }