Csharp特别支持

一 官方Windows平台.Net Farmework3.5动态链接库下载

     游宝星电子门票系统互联网交易接口C#特别支持动态链接库      点击下载
     DigitalScience.ETicket.ApiHelper.dll Csharp源码下载      点击下载

下载压缩包包含的内容:

文件名 功能描述
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
        }
    }