下载压缩包包含的内容:
| 文件名 | 功能描述 |
| 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
}
}