zoukankan      html  css  js  c++  java
  • 财付通信用卡 外卡支付

    1.请求支付:

    控制器:

    public ActionResult Index(decimal amount, string submitType, string relationCode, int? couponId = 0)
            {
                var model = new TenpayModel();
                amount = Math.Round((amount * 0.035M) + amount, 2);
                if (amount < 1)
                {
                    model.ErrorMsg = "The amount cannot be less than 1USD.";
                    return View(model);
                }
                if (amount > 2000)
                {
                    model.ErrorMsg = "The amount cannot be less than 2000USD.";
                    return View(model);
                }
                string relationId;
                relationId = submitType == "AddMoney" ? CurrentUserId.ToString() : relationCode;
    
                model.IsSend = false;
    
                RelationTypeEnum relationType = (RelationTypeEnum)Enum.Parse(typeof(RelationTypeEnum), submitType);
    
                var ourPaymentNumber = AddMoneyDataService.GetOrderId();    //我们的交易号
    
                model.Request = TenpayManager.CreateTenPayRequest(amount, relationId, CurrentUserId.ToString(), ourPaymentNumber, LanguageType.En);
    
                model.sign = TenpayManager.createRequestSign(model.Request);
    
                var TenpayBegin = AddMoneyDataService.TenpayAddMoney(CurrentUserId, amount, ourPaymentNumber, relationType,
                    relationId, model.ToJson(), LanguageType.En); //begin
    
                if (TenpayBegin)
                {
                    model.IsSend = true;
                }
                else
                {
                    model.ErrorMsg = "System Error";
                }
    
                YOYBuyComLogDataService.Log("提交TenPay充值信息", LogType.TenpaySend, CurrentUserId, null, model.ToJson());
                return View(model);
            }
    View Code

    view:

    @if (Model.IsSend)
    {
        <div class="floR status">
            <h2 class="clear ove mar10 font18 parbor">Credit Card - Online Payment</h2>
            <div class="clear ove mar40">
                Processing…
            </div>
        </div>
        <script type="text/javascript" language="javascript">
            $(document).ready(function () {
                $("#tenpayForm").submit();
            });
        </script>
        if (Model != null && Model.Request != null)
        {
            using (Html.BeginForm(null, null, FormMethod.Post, new { action = Model.Request.gateUrl, target = "_self", id = "tenpayForm", name = "tenpayForm", style = "display:none;" }))
            {
                <input type="text" id="attach" name="attach" value="@Model.Request.attach" />
                <input type="text" id="body" name="body" value="@Model.Request.body" />
                <input type="text" id="fee_type" name="fee_type" value="@Model.Request.fee_type"/>
                <input type="text" id="input_charset" name="input_charset" value="@Model.Request.input_charset" />
                <input type="text" id="language" name="language" value="@Model.Request.language" />
                <input type="text" id="notify_url" name="notify_url" value="@Model.Request.notify_url" />
                <input type="text" id="out_trade_no" name="out_trade_no" value="@Model.Request.out_trade_no" />
                <input type="text" id="partner" name="partner" value="@Model.Request.partner" />
                <input type="text" id="project_type" name="project_type" value="@Model.Request.project_type" />
                <input type="text" id="return_url" name="return_url" value="@Model.Request.return_url" />
                <input type="text" id="spbill_create_ip" name="spbill_create_ip" value="@Model.Request.spbill_create_ip" />
                <input type="text" id="total_fee" name="total_fee" value="@Model.Request.total_fee" />
                @*<input type="text" id="key" name="key" value="@Model.Request.key" />*@
                <input type="text" id="sign" name="sign" value="@Model.sign" />
            }
        }
    }
    else
    {
        <div class="floR status">
            <h2 class="clear ove mar10 font18 parbor">Tenpay - Online Payment</h2>
            <div class="clear ove mar40">
                <span style="color: red">Error: @Model.ErrorMsg</span>
            </div>
        </div>
    }
    View Code

    用到的方法:

    public static class TenpayManager
        {
            //生成实体类
            public static PayRequest CreateTenPayRequest(decimal amount, string ticketId, string userId, string ourPaymentNumber, LanguageType lan)
            {
                var result = new PayRequest();
                result.gateUrl = ConfigurationManager.AppSettings["TenpayPostUrl"];//请求地址
                result.key = ConfigurationManager.AppSettings["TenpayKey"];//密钥
                result.partner = ConfigurationManager.AppSettings["TenpayPartner"];//商户号
                result.return_url = ConfigurationManager.AppSettings["TenpayReturn_url"];//同步
                result.notify_url = ConfigurationManager.AppSettings["TenpayNotify_url"];//异步
                //语种
                switch (lan)
                {
                    case LanguageType.En:
                        result.language = "EN";
                        result.body = "YOYBUY  Deposit";//商品描述!
                        break;
                    case LanguageType.Cn:
                        result.language = "CN";
                        result.body = "YOYBUY 充值";//商品描述!
                        break;
                    case LanguageType.Ru:
                        result.language = "RU";
                        result.body = "YOYBUY депозит";//商品描述!
                        break;
                    case LanguageType.Es:
                        result.language = "SP";
                        result.body = " YOYBUY  Depositar";//商品描述!
                        break;
                    default:
                        result.language = "EN";
                        result.body = "YOYBUY  Deposit";//商品描述!
                        break;
                }
                result.project_type = 1; //外卡
                result.spbill_create_ip = HttpContext.Current.Request.UserHostAddress; //客户机ip
                //result.spbill_create_ip = "124.207.35.178"; //客户机ip
                result.fee_type = "USD"; //币种
                result.total_fee = Convert.ToInt32(amount * 100).ToString();//
                result.out_trade_no = ourPaymentNumber; //商家订单号
                result.input_charset = "UTF-8";//编码
                var whiteUser = UserLimitedDataService.CheckUserIsInUserGroup(int.Parse(userId));
                result.attach = whiteUser ? "is_white_user=1" : "is_white_user=0";
                return result;
            }
            //第一次请求支付
            public static string createRequestSign(PayRequest Request)
            {
                var parameters = new Hashtable();
                parameters.Add("attach", Request.attach);
                parameters.Add("body", Request.body);
                parameters.Add("input_charset", Request.input_charset);
                parameters.Add("notify_url", Request.notify_url);
                parameters.Add("return_url", Request.return_url);
                parameters.Add("partner", Request.partner);
                parameters.Add("out_trade_no", Request.out_trade_no);
                parameters.Add("total_fee", Request.total_fee);
                parameters.Add("fee_type", Request.fee_type);
                parameters.Add("spbill_create_ip", Request.spbill_create_ip);
                parameters.Add("project_type", Request.project_type);
                parameters.Add("language", Request.language);
                return createSign(parameters);
            }
            //第一次相应参数
            public static Hashtable getResponseParameters(NameValueCollection collection)
            {
                var parameters = new Hashtable();
                //添加相应参数
                foreach (string k in collection)
                {
                    string v = (string)collection[k];
                    if (!string.IsNullOrEmpty(k))
                    {
                        parameters.Add(k, v);
                    }
                }
                return parameters;
            }
            //根据相应参数生成实体
            public static PayResponse getResponseModel(Hashtable parameters)
            {
                var response = new PayResponse();
                response.Sign = parameters["sign"]?.ToString() ?? "";
                response.notify_id = parameters["notify_id"]?.ToString() ?? "";
                return response;
            }
            //通知查询 第二次请求
            public static string Call(string notify_id)
            {
                var url = ConfigurationManager.AppSettings["TenpaySearchUrl"];//通知请求地址;
                var partner = ConfigurationManager.AppSettings["TenpayPartner"]; //商户号
                var parameters = new Hashtable();
                parameters.Add("input_charset", "UTF-8");
                parameters.Add("partner", partner);
                parameters.Add("notify_id", notify_id);
                var sign = createSign(parameters);
                parameters.Add("sign", sign);
                var content = getCallUrl(url, parameters);
    
                string[] sArray = Regex.Split(content, "\?");
                HttpWebRequest hp = (HttpWebRequest)WebRequest.Create(sArray[0]);
                hp.Timeout = 5000;
                var encoding = System.Text.Encoding.GetEncoding("UTF-8");
                string postData = "";
                if (sArray.Length >= 2)
                {
                    postData = sArray[1];
                }
                if (postData != null)
                {
                    byte[] data = encoding.GetBytes(postData);
                    hp.Method = "POST";
                    hp.ContentType = "application/x-www-form-urlencoded";
                    hp.ContentLength = data.Length;
                    var ws = hp.GetRequestStream();
                    // 发送数据
                    ws.Write(data, 0, data.Length);
                    ws.Close();
                }
                var wr = (HttpWebResponse)hp.GetResponse();
                var sr = new StreamReader(wr.GetResponseStream(), encoding);
                var responseData = sr.ReadToEnd();
                sr.Close();
                wr.Close();
                return responseData;
            }
    
            //获取查询通知路径
            public static string getCallUrl(string url, Hashtable parameters)
            {
                var sb = new StringBuilder();
                ArrayList keys = new ArrayList(parameters.Keys);
                keys.Sort();
                foreach (string k in keys)
                {
                    var v = parameters[k].ToString();
                    if (null != v && "key".CompareTo(k) != 0)
                    {
                        sb.Append(k + "=" + HttpUtility.UrlEncode(v, Encoding.GetEncoding("UTF-8")) + "&");
                    }
                }
                if (sb.Length > 0)
                {
                    sb.Remove(sb.Length - 1, 1);
                }
                return url + "?" + sb.ToString();
            }
    
            //解析第二次获取xml
            public static Hashtable getCallBackParameters(string xml)
            {
                var parameters = new Hashtable();
    
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xml);
                XmlNode root = xmlDoc.SelectSingleNode("root");
                XmlNodeList xnl = root.ChildNodes;
    
                foreach (XmlNode xnf in xnl)
                {
                    parameters.Add(xnf.Name, xnf.InnerXml);
                }
                return parameters;
            }
    
            public static CallBack getCallBackModel(Hashtable parameters)
            {
                var call = new CallBack();
                call.Sign = parameters["sign"]?.ToString() ?? "";
                call.out_trade_no = parameters["out_trade_no"]?.ToString() ?? "";
                call.transaction_id = parameters["transaction_id"]?.ToString() ?? "";
                if (!string.IsNullOrEmpty(parameters["total_fee"].ToString()))
                {
                    call.total_fee= Convert.ToDecimal(parameters["total_fee"].ToString()) / 100;
                }
                call.trade_state = parameters["trade_state"]?.ToString() ?? "";
                call.trade_mode = parameters["trade_mode"]?.ToString() ?? "";
                call.retcode = parameters["retcode"]?.ToString() ?? "";
                return call;
            }
    
            //生成sign
            public static string createSign(Hashtable parameters)
            {
                var key = ConfigurationManager.AppSettings["TenpayKey"];//密钥
                StringBuilder sb = new StringBuilder();
                ArrayList akeys = new ArrayList(parameters.Keys);
                akeys.Sort();
                foreach (string k in akeys)
                {
                    string v = parameters[k].ToString();
                    if (null != v && "".CompareTo(v) != 0
                        && "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0)
                    {
                        sb.Append(k + "=" + v + "&");
                    }
                }
                sb.Append("key=" + key);
                string sign = Encryption.MD5(sb.ToString(), 32).ToUpper();
                return sign;
            }
    
    
        }
    View Code
        public class CallBack
        {
            public string Sign { get; set; }
            public string out_trade_no { get; set; }
            public string transaction_id { get; set; }
            public decimal total_fee { get; set; }
            public string trade_state { get; set; }
            public string trade_mode { get; set; }
            public string retcode { get; set; }
        }
    CallBack.cs
        public class PayResponse
        {
            //签名
            public string Sign { get; set; }
    
            //相应id
            public string notify_id { get; set; }
        }
    PayResponse.cs
    public class PayRequest
        {
            //编码
            public string input_charset { get; set; }
            //白名单 1是 0否 附加项
            public string attach { get; set; }
            //商品描述
            public string body { get; set; }
            //同步url
            public string return_url { get; set; }
            //异步url
            public string notify_url { get; set; }
            //商户号
            public string partner { get; set; }
            //商家订单号
            public string out_trade_no { get; set; }
            //商品金额
            public string total_fee { get; set; }
            //币种
            public string fee_type { get; set; }
            //用户ip
            public string spbill_create_ip { get; set; }
            //业务类型
            public int project_type { get; set; }
            //语种
            public string language { get; set; }
            // 密钥
            public string key { get; set; }
            // 请求地址
            public string gateUrl { get; set; }
        }
    PayResult.cs

    2.响应支付同步和异步的,自动补单机制,每5分钟左右会一直异步请求,直到返回success为止。

    public ActionResult returnurl()
            {
                var collection = Request.HttpMethod == "POST" ? Request.Form : Request.QueryString;
                var responseParameters = TenpayManager.getResponseParameters(collection);
                var responseModel = TenpayManager.getResponseModel(responseParameters);
                var responseSign = TenpayManager.createSign(responseParameters);
                if (responseModel.Sign.Equals(responseSign))
                {
                    //通知查询
                    var xml = TenpayManager.Call(responseModel.notify_id);
                    var callBackParameters = TenpayManager.getCallBackParameters(xml);
                    var callBackSign = TenpayManager.createSign(callBackParameters);
                    var callBackModel = TenpayManager.getCallBackModel(callBackParameters);
    
                    if (callBackModel.Sign.Equals(callBackSign))
                    {
                        //我们的交易号
                        var out_trade_no = callBackModel.out_trade_no;
                        //财付通交易号
                        var transaction_id = callBackModel.transaction_id;
                        //金额,以分为单位
                        var amount = callBackModel.total_fee;
                        //支付结果
                        var trade_state = callBackModel.trade_state;
                        //交易模式,1即时到帐 2中介担保
                        var trade_mode = callBackModel.trade_mode;
                        var retcode = callBackModel.retcode;
    
                        if (retcode == "0" || trade_mode == "1" || trade_state == "1")
                        {
                            var successModel = new SuccessModel();
                            successModel.TradeNo = transaction_id;
                            successModel.Amount = amount > 0 ? amount : 0;
    
                            var failModel = new FailModel();
                            failModel.TradeNo = transaction_id;
    
                            var result = AddMoneyDataService.TenpayPayFinished(transaction_id, out_trade_no, amount, true, callBackModel.ToJson());
    
    
                            switch (result.Status)
                            {
                                case CommonEnum.DataExisted:
                                    switch (result.Data.Language)
                                    {
                                        case LanguageType.En:
                                            switch (result.Data.RelationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/en/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/order?ot=pp&pt=alipay&tid=" + result.Data.RelationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myforwardingparcels");
                                                default:
                                                    return View("/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Cn:
                                            switch (result.Data.RelationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Cn/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/cn/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/cn/order?ot=pp&pt=alipay&tid=" + result.Data.RelationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/cn/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/cn/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/cn/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Cn/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Es:
                                            switch (result.Data.RelationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Es/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/es/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/es/order?ot=pp&pt=alipay&tid=" + result.Data.RelationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/es/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/es/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/es/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Es/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Ru:
                                            switch (result.Data.RelationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Ru/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/ru/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/ru/order?ot=pp&pt=alipay&tid=" + result.Data.RelationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/ru/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/ru/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/ru/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Ru/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        default:
                                            switch (result.Data.RelationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/en/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/order?ot=pp&pt=alipay&tid=" + result.Data.RelationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + result.Data.RelationCode + "&returnUrl=http://order.yoybuy.com/en/myforwardingparcels");
                                                default:
                                                    return View("/Views/Tenpay/Fail.cshtml", failModel);
                                            }
    
                                    }
                                case CommonEnum.Success:
                                    #region 更新相关订单、运单的状态
    
                                    var relationType = result.Data.RelationType;
                                    var relationCode = result.Data.RelationCode;
                                    var userId = result.Data.UserId;
                                    switch (relationType)
                                    {
                                        case RelationTypeEnum.AddMoney:
                                            break;
                                        case RelationTypeEnum.PurchasingOrderPay: //代购订单支付成功
                                            var res = GoodsDataService.PaySucessWebOrder(relationCode, userId, PaymentTypeEnum.CreditCard.ToString());
                                            #region  代购订单支付 添加日志
                                            if (res == CreateProcureListStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购订单支付成功[ReturnData],订单号:" + relationCode, LogType.AlipayNotify, null, null,
                                                    res.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购订单支付失败[ReturnData],订单号:" + relationCode, LogType.AlipayNotify, null, null,
                                                    res.ToJson());
                                            }
                                            #endregion
                                            break;
                                        case RelationTypeEnum.PurchasingOrderOncePay: //代购订单补款成功
                                            var returnState = OrderDataService.RefundForProcure(int.Parse(relationCode), userId);
                                            #region 代购订单补款 添加日志
                                            if (returnState == 0)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购订单补款成功[ReturnData],订单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购订单补款失败[ReturnData],订单号:" + relationCode, LogType.AlipayNotify, null, null, returnState.ToString());
                                            }
                                            #endregion
                                            break;
                                        case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                            var backState = OrderDataService.PaySuccessWaybill(relationCode, userId, PaymentTypeEnum.CreditCard.ToString());
                                            #region  代购运单支付 添加日志
                                            if (backState.Status == CreateOrderStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购运单支付成功[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, backState.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购运单支付失败[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, backState.ToJson());
                                            }
    
                                            #endregion
                                            break;
                                        case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款支付成功
                                            var payRebackState = OrderDataService.PaySecondFeight20120823(relationCode, userId);
                                            #region  代购运单补款支付 添加日志
                                            if (payRebackState == 1)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购运单补款成功[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard代购运单补款失败[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            }
                                            #endregion
                                            break;
                                        case RelationTypeEnum.ForwardingWaybillPay: //转运运单支付成功
                                            var forwardingWaybillPay = OrderDataService.PaySuccessWaybill(relationCode, userId, PaymentTypeEnum.CreditCard.ToString());
                                            #region 转运运单支付 添加日志
                                            if (forwardingWaybillPay.Status == CreateOrderStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard转运运单支付成功[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, forwardingWaybillPay.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard转运运单支付失败[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, forwardingWaybillPay.ToJson());
                                            }
                                            #endregion
                                            break;
                                        case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单补款成功
                                            var forwardingWaybillOncePay = OrderDataService.PaySecondFeight20120823(relationCode, userId);
                                            #region 转运运单补款 添加日志
                                            if (forwardingWaybillOncePay == 1)
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard转运运单补款成功[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log("使用CreditCard转运运单补款失败[ReturnData],运单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            }
                                            #endregion
                                            break;
                                        default:
                                            YOYBuyComLogDataService.Log("接收CreditCard异常[ReturnData]支付失败,单号:" + relationCode, LogType.AlipayNotify, null, null, null);
                                            break;
                                    }
    
                                    #endregion
    
                                    switch (result.Data.Language)
                                    {
                                        case LanguageType.En:
                                            switch (relationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/en/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    YOYBuyComLogDataService.Log("Tenpay代购订单支付", LogType.Info, userId, null, "http://order.yoybuy.com/en/order/?ot=pp&pt=alipay&tid=" + relationCode);
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/order?ot=pp&pt=alipay&tid=" + relationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myforwardingparcels");
                                                default:
                                                    return View("/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Cn:
                                            switch (relationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Cn/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/cn/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    YOYBuyComLogDataService.Log("Tenpay代购订单支付", LogType.Info, userId, null, "http://order.yoybuy.com/cn/order/?ot=pp&pt=alipay&tid=" + relationCode);
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/cn/order?ot=pp&pt=alipay&tid=" + relationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/cn/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/cn/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/cn/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/cn/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Cn/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Es:
                                            switch (relationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Es/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/es/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    YOYBuyComLogDataService.Log("Tenpay代购订单支付", LogType.Info, userId, null, "http://order.yoybuy.com/es/order/?ot=pp&pt=alipay&tid=" + relationCode);
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/es/order?ot=pp&pt=alipay&tid=" + relationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/es/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/es/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/es/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/es/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Es/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        case LanguageType.Ru:
                                            switch (relationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Areas/Ru/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/ru/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    YOYBuyComLogDataService.Log("Tenpay代购订单支付", LogType.Info, userId, null, "http://order.yoybuy.com/ru/order/?ot=pp&pt=alipay&tid=" + relationCode);
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/ru/order?ot=pp&pt=alipay&tid=" + relationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/ru/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/ru/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/ru/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/ru/myforwardingparcels");
                                                default:
                                                    return View("/Areas/Ru/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                        default:
                                            switch (relationType)
                                            {
                                                case RelationTypeEnum.AddMoney: //充值
                                                    return View("/Views/Tenpay/Success.cshtml", successModel);
                                                case RelationTypeEnum.DirectOrderPay: //直购支付成功
                                                case RelationTypeEnum.DirectOrderOncePay:
                                                    return Redirect("http://order.yoybuy.com/en/orderv5/orderlist");
                                                case RelationTypeEnum.PurchasingOrderOncePay: //代购订单支付成功
                                                case RelationTypeEnum.PurchasingOrderPay:
                                                    YOYBuyComLogDataService.Log("Tenpay代购订单支付", LogType.Info, userId, null, "http://order.yoybuy.com/en/order/?ot=pp&pt=alipay&tid=" + relationCode);
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=order&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/order?ot=pp&pt=alipay&tid=" + relationCode);
                                                case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                                    return Redirect("http://shoppingcart.yoybuy.com/en/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myparcels");
                                                case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单支付成功
                                                case RelationTypeEnum.ForwardingWaybillPay:
                                                    return Redirect("http://shoppingcart.yoybuy.com/Purchase/paySuccessful?goodsBelongsType=waybill&totleAmount=" + amount + "&tracking=" + relationCode + "&returnUrl=http://order.yoybuy.com/en/myforwardingparcels");
                                                default:
                                                    return View("/Views/Tenpay/Fail.cshtml", failModel);
                                            }
                                    }
                                case CommonEnum.Failed:
                                    switch (result.Data.Language)
                                    {
                                        case LanguageType.En:
                                            return View("/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Cn:
                                            return View("/Areas/Cn/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Es:
                                            return View("/Areas/Es/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Ru:
                                            return View("/Areas/Ru/Views/Tenpay/Fail.cshtml", failModel);
    
                                        default:
                                            return View("/Views/Tenpay/Fail.cshtml", failModel);
                                    }
                                default:
                                    switch (result.Data.Language)
                                    {
                                        case LanguageType.En:
                                            return View("/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Cn:
                                            return View("/Areas/Cn/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Es:
                                            return View("/Areas/Es/Views/Tenpay/Fail.cshtml", failModel);
    
                                        case LanguageType.Ru:
                                            return View("/Areas/Ru/Views/Tenpay/Fail.cshtml", failModel);
    
                                        default:
                                            return View("/Views/Tenpay/Fail.cshtml", failModel);
                                    }
                            }
                        }
                        else
                        {
                            var failModel = new FailModel();
                            failModel.TradeNo = "";
                            var result = AddMoneyDataService.TenpayPayFinished(transaction_id, out_trade_no, amount, false, callBackModel.ToJson());
                            YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "第三方支付失败");
                            return View("/Views/Tenpay/Fail.cshtml", failModel);
                        }
                    }
                    else
                    {
                        var failModel = new FailModel();
                        failModel.TradeNo = "";
                        YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "签名认证失败");
                        return View("/Views/Tenpay/Fail.cshtml", failModel);
                        //非空 错误原因
                        //var retmsg = parameters["retmsg"].ToString();
                    }
                }
                else
                {
                    var failModel = new FailModel();
                    failModel.TradeNo = "";
                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "签名认证失败");
                    return View("/Views/Tenpay/Fail.cshtml", failModel);
                }
            }
    returnurl
    public ActionResult notifyurl()
            {
                var collection = Request.HttpMethod == "POST" ? Request.Form : Request.QueryString;
                var responseParameters = TenpayManager.getResponseParameters(collection);
                var responseModel = TenpayManager.getResponseModel(responseParameters);
                var responseSign = TenpayManager.createSign(responseParameters);
                if (responseModel.Sign.Equals(responseSign))
                {
                    //通知查询
                    var xml = TenpayManager.Call(responseModel.notify_id);
                    var callBackParameters = TenpayManager.getCallBackParameters(xml);
                    var callBackSign = TenpayManager.createSign(callBackParameters);
                    var callBackModel = TenpayManager.getCallBackModel(callBackParameters);
    
                    if (callBackModel.Sign.Equals(callBackSign))
                    {
                        //我们的交易号
                        var out_trade_no = callBackModel.out_trade_no;
                        //财付通交易号
                        var transaction_id = callBackModel.transaction_id;
                        //金额,以分为单位
                        var amount = callBackModel.total_fee;
                        //支付结果
                        var trade_state = callBackModel.trade_state;
                        //交易模式,1即时到帐 2中介担保
                        var trade_mode = callBackModel.trade_mode;
                        var retcode = callBackModel.retcode;
    
                        if (retcode == "0" || trade_mode == "1" || trade_state == "1")
                        {
                            var successModel = new SuccessModel();
                            successModel.TradeNo = transaction_id;
                            successModel.Amount = amount > 0 ? amount : 0;
    
                            var failModel = new FailModel();
                            failModel.TradeNo = transaction_id;
    
                            var result = AddMoneyDataService.TenpayPayFinished(transaction_id, out_trade_no, amount, true,
                                callBackModel.ToJson());
    
    
                            switch (result.Status)
                            {
                                case CommonEnum.DataExisted:
                                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null,
                                        "付款成功");
                                    return Content("Success");
                                case CommonEnum.Success:
    
                                    var relationType = result.Data.RelationType;
                                    var relationCode = result.Data.RelationCode;
                                    var userId = result.Data.UserId;
                                    #region 更新相关订单、运单的状态
    
                                    switch (relationType)
                                    {
                                        case RelationTypeEnum.AddMoney:
                                            break;
                                        case RelationTypeEnum.PurchasingOrderPay: //代购订单支付成功
                                            var res = GoodsDataService.PaySucessWebOrder(relationCode, userId,
                                                PaymentTypeEnum.CreditCard.ToString());
    
                                            #region  代购订单支付 添加日志
    
                                            if (res == CreateProcureListStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购订单支付成功[ReturnData],订单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null,
                                                    res.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购订单支付失败[ReturnData],订单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null,
                                                    res.ToJson());
                                            }
    
                                            #endregion
    
                                            break;
                                        case RelationTypeEnum.PurchasingOrderOncePay: //代购订单补款成功
                                            var returnState = OrderDataService.RefundForProcure(int.Parse(relationCode),
                                                userId);
    
                                            #region 代购订单补款 添加日志
    
                                            if (returnState == 0)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购订单补款成功[ReturnData],订单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购订单补款失败[ReturnData],订单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, returnState.ToString());
                                            }
    
                                            #endregion
    
                                            break;
                                        case RelationTypeEnum.PurchasingWaybillPay: //代购运单支付成功
                                            var backState = OrderDataService.PaySuccessWaybill(relationCode, userId,
                                                PaymentTypeEnum.CreditCard.ToString());
    
                                            #region  代购运单支付 添加日志
    
                                            if (backState.Status == CreateOrderStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购运单支付成功[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, backState.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购运单支付失败[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, backState.ToJson());
                                            }
    
                                            #endregion
    
                                            break;
                                        case RelationTypeEnum.PurchasingWaybillOncePay: //代购运单补款支付成功
                                            var payRebackState = OrderDataService.PaySecondFeight20120823(relationCode,
                                                userId);
    
                                            #region  代购运单补款支付 添加日志
    
                                            if (payRebackState == 1)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购运单补款成功[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard代购运单补款失败[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, null);
                                            }
    
                                            #endregion
    
                                            break;
                                        case RelationTypeEnum.ForwardingWaybillPay: //转运运单支付成功
                                            var forwardingWaybillPay = OrderDataService.PaySuccessWaybill(relationCode,
                                                userId, PaymentTypeEnum.CreditCard.ToString());
    
                                            #region 转运运单支付 添加日志
    
                                            if (forwardingWaybillPay.Status == CreateOrderStatus.Success)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard转运运单支付成功[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, forwardingWaybillPay.ToJson());
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard转运运单支付失败[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, forwardingWaybillPay.ToJson());
                                            }
    
                                            #endregion
    
                                            break;
                                        case RelationTypeEnum.ForwardingWaybillOncePay: //转运运单补款成功
                                            var forwardingWaybillOncePay =
                                                OrderDataService.PaySecondFeight20120823(relationCode, userId);
    
                                            #region 转运运单补款 添加日志
    
                                            if (forwardingWaybillOncePay == 1)
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard转运运单补款成功[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, null);
                                            }
                                            else
                                            {
                                                YOYBuyComLogDataService.Log(
                                                    "使用CreditCard转运运单补款失败[ReturnData],运单号:" + relationCode,
                                                    LogType.AlipayNotify, null, null, null);
                                            }
    
                                            #endregion
    
                                            break;
                                        default:
                                            YOYBuyComLogDataService.Log(
                                                "接收CreditCard异常[ReturnData]支付失败,单号:" + relationCode, LogType.AlipayNotify,
                                                null, null, null);
                                            break;
                                    }
    
                                    #endregion
    
                                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null,
                                        "付款成功");
                                    return Content("Success");
                                case CommonEnum.Failed:
                                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null,
                                        "付款失败");
                                    return Content("Failed");
                                default:
                                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null,
                                        "付款失败");
                                    return Content("Failed");
                            }
                        }
                        else
                        {
                            var result = AddMoneyDataService.TenpayPayFinished(transaction_id, out_trade_no, amount, false, callBackModel.ToJson());
                            YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "第三方支付失败");
                            return Content("Failed");
                        }
                    }
                    else
                    {
                        YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "签名认证失败");
                        return Content("Failed");
                    }
                }
                else
                {
                    //签名认证失败
                    YOYBuyComLogDataService.Log("接收TenPay信息", LogType.TenpaySend, CurrentUserId, null, "签名认证失败");
                }
                return Content("");
            }
    notifyurl

    3.web.config

        <!--Tenpay在线充值开始-->
        <!--Tenpay提交地址-->
        <add key="TenpayPostUrl" value="https://payment.tenpay.com/cgi-bin/icard/icard_pay_gate.cgi" />
        <!--Tenpay商户号-->
        <add key="TenpayPartner" value="111111111" />
        <!--Tenpay密钥-->
        <add key="TenpayKey" value="asdasdasdasd" />
        <!--Tenpay同步回调-->
        <add key="TenpayReturn_url" value="https://account.yoybuy.com/en/returnurl" />
        <!--Tenpay异步回调-->
        <add key="TenpayNotify_url" value="https://account.yoybuy.com/en/notifyurl" />
        <!--<add key="TenpayNotify_url" value="http://114.215.130.252/en/notifyurl" />-->
        <!--Tenpay请求通知地址-->
        <add key="TenpaySearchUrl" value="https://payment.tenpay.com/cgi-bin/icard/icard_verifynotifyid.cgi" />
        <!--Tenpay在线充值结束-->
    View Code
  • 相关阅读:
    DML和DQL语句
    MYSQL创建用户和授权方法(测试mysql5.7)
    安卓ViewPager中Button点击事件弹出Dialog
    安卓从popupwindow跳转到Activity页面
    Collect preferences failed, class java/lang/AutoCloseable not found in D:Program Files (x86)Androidandroid-sdkplatformsandroid-19android.jar
    安卓横屏布局设置
    C#控制台程序自动重启(检测是否连接网络)
    C++指针学习
    C++共享数据的保护
    C++结构体再学心得
  • 原文地址:https://www.cnblogs.com/baidawei/p/5795973.html
Copyright © 2011-2022 走看看