2025-03-28 09:49:56 +08:00

7596 lines
399 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web;
using System.Web.Services;
using HIGHWAY = TableDataService.Model.HIGHWAY;
using SDK = WebService.SDK;
using Newtonsoft.Json.Linq;
using OperatingData.SDK;
using Newtonsoft.Json;
using System.IO;
using System.Data.OleDb;
using HCC = HZQR.Common.Common;
using HZQR.Common;
namespace TableDataService
{
/// <summary>
/// Service 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
protected static string _OracleConnStr = ConfigurationManager.AppSettings["OracleConnStr"].ToString();
protected static string _OracleConnStrSellData = ConfigurationManager.AppSettings["OracleConnStrSellData"];
protected static string _OracleHelperString = ConfigurationManager.AppSettings["OracleHelperString"].ToString();
protected static string _LogUrl = ConfigurationManager.AppSettings["LogUrl"];
protected static string _ColudUrl = ConfigurationManager.AppSettings["ColudUrl"];
protected static string _IsUploadColud = ConfigurationManager.AppSettings["IsUploadColud"];
protected static string _IsLog = ConfigurationManager.AppSettings["IsLog"];
protected static string _IsSaleSplit = ConfigurationManager.AppSettings["IsSaleSplit"];
//protected static string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
//protected static string _AUTHORIZATION_CODE = ConfigurationManager.AppSettings["AUTHORIZATION_CODE"].ToString();
//protected string _IsUpLoad = ConfigurationManager.AppSettings["IsUpload"].ToString();
//protected string _IsDownload = ConfigurationManager.AppSettings["IsDownload"].ToString();
//protected string _IsCheckAuth = ConfigurationManager.AppSettings["IsCheckAuth"].ToString();
private static int _MaxDataQuantity = 4;
private static int _MaxDataDownload = 10;
/// <summary>
/// 本地连接
/// </summary>
OracleHelper LocalOracle { get; set; }
/// <summary>
/// 授权连接
/// </summary>
OracleHelper AuthOracle { get; set; }
#region
#region ->
/// <summary>
/// 数据上传
/// </summary>
/// <param name="code">机器授权码</param>
/// <param name="tableName">上传数据表名</param>
/// <param name="jsonString">传输数据json字符串格式</param>
/// <param name="orderString">json字符串存储服务区编码、门店编码、门店内码、收银机号、MAC地址、最近一次数据上传时间</param>
/// <returns></returns>
[WebMethod]
public string UploadTableData(string code, string tableName, string jsonString, string orderString = "")
{
//if (_IsUpLoad == "0")
//{
// return "{\"error\": -1 ,\"msg\": \"上传接口已关闭!\",\"rows\":[]}";
//}
//获取本地收银数据库连接
if (LocalOracle == null)
{
LocalOracle = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
}
if (!string.IsNullOrEmpty(orderString))
{
try
{
JObject _OrderString = JObject.Parse(orderString);
/* 判断orderString中是否缺失必填项【服务区编码、门店编码、门店内码、收银机号、收银机本地数据最早时间】
* 这些参数是数据上传至哪台机器的判断条件
*/
if (_OrderString.Property("SERVERPARTCODE") == null || _OrderString.Property("SHOPCODE") == null ||
_OrderString.Property("MACHINECODE") == null)
{
return "{\"error\": -1 ,\"msg\": \"获取数据上传失败JSON参数解析异常\",\"rows\":[]}";
}
//服务区编码
string _SERVERPARTCODE = _OrderString.Property("SERVERPARTCODE").Value.ToString();
//门店编码
string _SHOPCODE = _OrderString.Property("SHOPCODE").Value.ToString();
//门店ID
string _SERVERPARTSHOP_ID = _OrderString.Property("SERVERPARTSHOP_ID") == null ? "" :
_OrderString.Property("SERVERPARTSHOP_ID").Value.ToString();
//收银机编码
string _MACHINECODE = _OrderString.Property("MACHINECODE").Value.ToString();
//Mac地址
string _MACADDRESS = _OrderString.Property("MACADDRESS") == null ? "" :
_OrderString.Property("MACADDRESS").Value.ToString();
//收银机上传时间,预留字段,暂不使用
string _ENDDATE = _OrderString.Property("ENDDATE") == null ? "" :
_OrderString.Property("ENDDATE").Value.ToString();
//必填项“服务区编码、门店内码、门店编码”不可为空
if (string.IsNullOrWhiteSpace(_SERVERPARTCODE) || string.IsNullOrWhiteSpace(_SHOPCODE) ||
string.IsNullOrWhiteSpace(_MACHINECODE) || string.IsNullOrWhiteSpace(_ENDDATE))
{
return "{\"error\": -1 ,\"msg\": \"获取数据上传失败JSON缺少必要参数" +
"SERVERPARTCODE、SHOPCODE、MACHINECODE \",\"rows\":[]}";
}
string[] codes = new string[6];
codes[0] = _SERVERPARTCODE; //服务区编码
codes[1] = _SHOPCODE; //门店编码
codes[2] = _SERVERPARTSHOP_ID; //门店内码
codes[3] = _MACHINECODE; //机器编码
codes[4] = _ENDDATE; //收银机本地数据最早时间
codes[5] = _MACADDRESS; //MAC地址
//返回数据上传结果
return Method.UploadMethod.DataUploading(LocalOracle, tableName, jsonString, codes);
}
catch { }
}
else
{
return "{\"error\": -1 ,\"msg\": \"获取数据上传失败JSON参数解析异常\",\"rows\":[]}";
}
return "{\"error\": -1 ,\"msg\": \"获取数据上传失败:发生异常!\",\"rows\":[]}";
}
#endregion
#endregion
#region
#region ->
/// <summary>
/// 数据下发
/// </summary>
/// <param name="code"></param>
/// <param name="tableName"></param>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string DownloadTableData(string code, string tableName, string jsonString, string orderString = "")
{
//if (_IsDownload == "0")
//{
// return "{\"error\": -1 ,\"msg\": \"下载接口已关闭!\",\"rows\":[]}";
//}
//获取本地收银数据库连接
if (LocalOracle == null)
{
LocalOracle = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
}
//获取存储机器授权码的数据库连接
if (AuthOracle == null)
{
try
{
AuthOracle = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
_OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3], _OracleHelperString.Split(',')[4]);
}
catch
{
AuthOracle = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
_OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
}
}
//OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
// _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//OracleHelper _AuthorCode;
//try
//{
// _AuthorCode = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
// _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3], _OracleHelperString.Split(',')[4]);
//}
//catch
//{
// _AuthorCode = new OracleHelper(_OracleHelperString.Split(',')[0], _OracleHelperString.Split(',')[1],
// _OracleHelperString.Split(',')[2], _OracleHelperString.Split(',')[3]);
//}
if (!string.IsNullOrWhiteSpace(jsonString))
{
try
{
JObject _JsonString = JObject.Parse(jsonString);
/* 判断jsonString中是否缺失必填项【服务区编码、门店编码、门店内码、收银机号、收银机本地数据最早时间】
* 这些参数是数据上传至哪台机器的判断条件
*/
if (_JsonString.Property("SERVERPARTCODE") == null || _JsonString.Property("SERVERPARTSHOP_ID") == null ||
_JsonString.Property("SHOPCODE") == null || _JsonString.Property("MACHINECODE") == null)
{
return "{\"error\": -1 ,\"msg\": \"获取数据分发失败JSON参数解析异常\",\"rows\":[]}";
}
string _SERVERPARTCODE = _JsonString.Property("SERVERPARTCODE").Value.ToString(); //服务区编码
string _SHOPCODE = _JsonString.Property("SHOPCODE").Value.ToString(); //门店编码
string _SERVERPARTSHOP_ID = _JsonString.Property("SERVERPARTSHOP_ID").Value.ToString(); //门店ID
string _MACADDRESS = _JsonString.Property("MACADDRESS").Value.ToString(); //Mac地址
string _MACHINECODE = _JsonString.Property("MACHINECODE").Value.ToString(); //收银机编码
//if (_JsonString.Property("PROVINCE_CODE") != null)
//{
// _PROVINCE_CODE = _JsonString.Property("PROVINCE_CODE").Value.ToString();
//}
//else
//{
// try
// {
// List<Model.ServerpartShopModel> _ServerpartShopList = new List<Model.ServerpartShopModel>();
// }
// catch { }
//}
//如果门店ID是空的则从数据库直接读取对应门店的ID
if (string.IsNullOrWhiteSpace(_SERVERPARTSHOP_ID) &&
!string.IsNullOrWhiteSpace(_SERVERPARTCODE) &&
!string.IsNullOrWhiteSpace(_SHOPCODE))
{
try
{
//_SERVERPARTSHOP_ID = _OracleHelper.ExcuteSqlGetDataSet(
_SERVERPARTSHOP_ID = LocalOracle.ExcuteSqlGetDataSet(
string.Format(@"SELECT SERVERPARTSHOP_ID
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE_EX
WHERE SERVERPART_CODE = '{0}' AND SHOPCODE = '{1}'",
_SERVERPARTCODE, _SHOPCODE)).Tables[0].Rows[0]["SERVERPARTSHOP_ID"].ToString();
}
catch { }
if (string.IsNullOrWhiteSpace(_SERVERPARTSHOP_ID))
{
try
{
//_SERVERPARTSHOP_ID = _OracleHelper.ExcuteSqlGetDataSet(
_SERVERPARTSHOP_ID = LocalOracle.ExcuteSqlGetDataSet(
string.Format(@"SELECT SERVERPARTSHOP_ID
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
WHERE SERVERPARTCODE = '{0}' AND SHOPCODE = '{1}'",
_SERVERPARTCODE, _SHOPCODE)).Tables[0].Rows[0]["SERVERPARTSHOP_ID"].ToString();
}
catch
{
try
{
//_SERVERPARTSHOP_ID = _OracleHelper.ExcuteSqlGetDataSet(
_SERVERPARTSHOP_ID = LocalOracle.ExcuteSqlGetDataSet(
string.Format(@"SELECT SERVERPARTSHOP_ID
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
WHERE SERVERPART_CODE = '{0}' AND SHOPCODE = '{1}'",
_SERVERPARTCODE, _SHOPCODE)).Tables[0].Rows[0]["SERVERPARTSHOP_ID"].ToString();
}
catch { }
}
}
}
string[] codes = null;
//如果是机器信息配置表【T_CONFIGURATION】、T_ADVERTISING【广告信息表】不需要进行MAC地址和授权码信息的认证
if (tableName != "HIGHWAY_EXCHANGE.T_CONFIGURATION" && tableName != "HIGHWAY_EXCHANGE.T_ADVERTISING")
{
//百色服务区传输判定
if (string.IsNullOrWhiteSpace(_MACADDRESS) || (_SERVERPARTCODE == "451304" && _MACADDRESS.StartsWith("00:E2:69:")))
{
return "{\"error\": -1 ,\"msg\": \"获取数据上传失败:设备异常! \",\"rows\":[]}";
}
//湖南服务区服务区编码36开头、新疆服务区的机器mac地址不是"68:ED:A4"开头的机器)需要进行机器授权码认证
if (_SERVERPARTCODE.StartsWith("36") || (_SERVERPARTCODE.StartsWith("65") && !_MACADDRESS.StartsWith("68:ED:A4")))
{
//codes = OperationDataHelper<string>.IsCorrectCode(_AuthorCode, code);
codes = OperationDataHelper<string>.IsCorrectCode(AuthOracle, code);
if (codes == null)
{
return "{\"error\": -1 ,\"msg\": \"授权码错误或已过期\",\"rows\":[]}";
}
}
//必填项服务区编码、门店内码、门店编码不可为空!!!代码要前置判断,优先判断参数是否为空
if (string.IsNullOrWhiteSpace(_SERVERPARTCODE) || string.IsNullOrWhiteSpace(_SHOPCODE) ||
string.IsNullOrWhiteSpace(_SERVERPARTSHOP_ID))
{
return "{\"error\": -1 ,\"msg\": \"获取数据分发失败JSON缺少必要参数" +
"SERVERPARTCODE、SERVERPARTSHOP_ID \",\"rows\":[]}";
}
else
{
/* 湖南服务区服务区编码36开头、新疆服务区的机器mac地址不是"68:ED:A4"开头的机器)
* 通过授权码获取到的服务区编码codes[0]和MAC地址codes[3]
* 与上传的服务区编码【SERVERPARTCODE】、MAC地址【MACADDRESS】进行对比
* 若不一致,则提示机器信息不一致
*/
if (_SERVERPARTCODE.StartsWith("36") || (_SERVERPARTCODE.StartsWith("65") && !_MACADDRESS.StartsWith("68:ED:A4")))
{
if (codes[0] != _SERVERPARTCODE || codes[3] != _MACADDRESS)
{
return "{\"error\": -1 ,\"msg\": \"获取数据分发失败:非本设备授权码,禁止操作! \",\"rows\":[]}";
}
}
}
}
codes = new string[7];
codes[0] = _SERVERPARTCODE; //服务区编码
codes[1] = _SHOPCODE; //门店编码
codes[2] = _SERVERPARTSHOP_ID; //门店内码
codes[3] = _MACHINECODE; //机器编码
codes[4] = _MACADDRESS; //MAC地址
string _LastTime = "";
//从orderstring中获取数据上次更新的时间
if (!string.IsNullOrWhiteSpace(orderString))
{
JObject _OrderString = JObject.Parse(orderString);
if (_OrderString.Property("TOTALNUMBER") != null && _OrderString.Property("TOTALNUMBER").Value.ToString() == "true")
{
//获取下发总数
//return Method.DownloadMethod.TotalCount(_OracleHelper, tableName, jsonString, codes);
if (_OrderString.Property("LASTTIME") != null)
{
_LastTime = _OrderString.Property("LASTTIME").Value.ToString();
}
return Method.DownloadMethod.TotalCount(LocalOracle, tableName, jsonString, codes, _LastTime);
}
else
{
try
{
if (_OrderString.Property("PAGE") != null)
{
//第几页
codes[5] = _OrderString.Property("PAGE").Value.ToString();
if (int.Parse(codes[5]) <= 0)
{
codes[5] = null;
}
}
}
catch { codes[5] = null; }
try
{
if (_OrderString.Property("TABLENAME") != null)
{
//预下发表名
codes[6] = _OrderString.Property("TABLENAME").Value.ToString();
}
}
catch { codes[6] = null; }
}
}
//返回下发数据集合json字符串格式
//return Method.DownloadMethod.DataGeneration(_OracleHelper, tableName, jsonString, codes);
return Method.DownloadMethod.DataGeneration(LocalOracle, tableName, jsonString, codes, _LastTime);
}
catch (Exception ex)
{
SDK.LogHelper.WriteSendLog("下发数据接口异常:" + ex.Message);
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"获取数据分发失败JSON参数解析异常\",\"rows\":[]}";
}
return "{\"error\": -1 ,\"msg\": \"获取数据下发失败:发生异常!\",\"rows\":[]}";
}
/// <summary>
/// 商品去重查询
/// </summary>
/// <param name="serverPartShop_id">门店ID</param>
/// <returns></returns>
[WebMethod]
public string CommodityDeduplication(string serverPartShop_id)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
string _strSelect = string.Format("SELECT COMMODITYEX_ID FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW A " +
"WHERE NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX B " +
"WHERE A.COMMODITYEX_ID = B.COMMODITYEX_ID) AND A.SERVERPARTSHOP_ID = {0}", serverPartShop_id);
try
{
DataTable _CommodityTable = _OracleHelper.ExcuteSqlGetDataSet(_strSelect).Tables[0];
return JsonHelper.DataTableToJson(_CommodityTable);
}
catch
{
DataTable _DataTable = new DataTable();
_DataTable.Columns.Add("COMMODITYEX_ID", typeof(int));
return JsonHelper.DataTableToJson(_DataTable);
}
}
#endregion
#endregion
#region
[WebMethod]
public string getTransferErrorList(string tableName, string jsonString)
{
try
{
JObject _JsonString = JObject.Parse(jsonString);
if (_JsonString.Property("SERVERPARTCODE") == null ||
_JsonString.Property("SHOPCODE") == null ||
_JsonString.Property("MACHINECODE") == null)
{
return "{\"error\": -1 ,\"msg\": \"获取数据失败JSON参数解析异常\",\"rows\":[]}";
}
string _SERVERPARTCODE = _JsonString.Property("SERVERPARTCODE").Value.ToString(); //服务区编码
string _SHOPCODE = _JsonString.Property("SHOPCODE").Value.ToString(); //门店编码
string _MACHINECODE = _JsonString.Property("MACHINECODE").Value.ToString(); //收银机编码
if (!string.IsNullOrWhiteSpace(tableName) && !string.IsNullOrWhiteSpace(_SERVERPARTCODE) &&
!string.IsNullOrWhiteSpace(_SHOPCODE) && !string.IsNullOrWhiteSpace(_MACHINECODE))
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
DataSet _DataSet = _OracleHelper.ExcuteSqlGetDataSet(
string.Format(@"SELECT * FROM (SELECT ROWNUM AS rowno, t.*
FROM HIGHWAY_EXCHANGE.T_TRANSMISSIONERROR t
WHERE SERVERPARTCODE = '{0}' AND SHOPCODE = '{1}' AND MACHINECODE = '{2}'
AND TABLENAME = '{3}' AND ROWNUM <= 20 ORDER BY OPERATE_DATE DESC)
table_alias WHERE table_alias.rowno > 0",
_SERVERPARTCODE, _SHOPCODE, _MACHINECODE, tableName));
return JsonHelper.DataSetToJson(_DataSet);
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"获取数据失败:" + ex.ToString() + "\",\"rows\":[]}";
}
return "{\"error\": -1 ,\"msg\": \"暂无数据!\",\"rows\":[]}";
}
#endregion
#region ->
/// <summary>
/// 检查必要参数
/// </summary>
/// <param name="jsonString"></param>
/// <param name="_RequiredDatas"></param>
/// <returns></returns>
private string ISCheckData(string jsonString, string[] _RequiredDatas)
{
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
if (_JsonArray.Count > _MaxDataQuantity * 100)
{
return "{\"error\": -1 ,\"msg\": \"添加失败json数据包不可超过400条数据\",\"rows\":[]}";
}
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if ((_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null) ||
(_Json.Property(_RequiredData.ToUpper()) != null &&
_Json.Property(_RequiredData.ToUpper()).Value.ToString() == "") ||
(_Json.Property(_RequiredData.ToLower()) != null &&
_Json.Property(_RequiredData.ToLower()).Value.ToString() == ""))
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[]}";
}
}
}
return null;
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加结账数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddEndaccountData(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "ENDACCOUNT_STARTDATE", "ENDACCOUNT_DATE",
"TOTALCOUNT", "TOTALSELLAMOUNT", "CASHPAY" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.ENDACCOUNT> _Data = JsonHelper.JSONStringToList<HIGHWAY.ENDACCOUNT>(
jsonString, "(ENDACCOUNT_STARTDATE|ENDACCOUNT_DATE)");
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.ENDACCOUNT _ENDACCOUNT in _Data)
{
if (string.IsNullOrEmpty(_ENDACCOUNT.SERVERPARTCODE))
{
_ENDACCOUNT.SERVERPARTCODE = codes[0];
}
if (string.IsNullOrEmpty(_ENDACCOUNT.SHOPCODE))
{
_ENDACCOUNT.SHOPCODE = codes[1];
}
OperationDataHelper<HIGHWAY.ENDACCOUNT>.InsertTableData(_OracleHelper, _ENDACCOUNT,
"HIGHWAY_EXCHANGE.T_ENDACCOUNT", "ENDACCOUNT_ID", "HIGHWAY_EXCHANGE.SEQ_ENDACCOUNT.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.ENDACCOUNT>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加COMMODITYSALE表
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddCommoditysaleData(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "STARTDATE", "ENDDATE", "COMMODITY_CODE",
"TOTALCOUNT", "TOTALSELLAMOUNT" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.COMMODITYSALE> _Data = JsonHelper.JSONStringToList<HIGHWAY.COMMODITYSALE>(
jsonString, "(STARTDATE|ENDDATE)");
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.COMMODITYSALE _COMMODITYSALE in _Data)
{
if (string.IsNullOrEmpty(_COMMODITYSALE.SERVERPARTCODE))
{
_COMMODITYSALE.SERVERPARTCODE = codes[0];
}
if (string.IsNullOrEmpty(_COMMODITYSALE.SHOPCODE))
{
_COMMODITYSALE.SHOPCODE = codes[1];
}
OperationDataHelper<HIGHWAY.COMMODITYSALE>.InsertTableData(_OracleHelper, _COMMODITYSALE,
"HIGHWAY_EXCHANGE.T_COMMODITYSALE", "COMMODITYSALE_ID", "HIGHWAY_EXCHANGE.SEQ_COMMODITYSALE.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.COMMODITYSALE>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加收银员报表
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddPersonsellData(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "STARTDATE", "ENDDATE", "TOTALCOUNT",
"TOTALSELLAMOUNT", "CASHPAY" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.PERSONSELL> _Data = JsonHelper.JSONStringToList<HIGHWAY.PERSONSELL>(
jsonString, "(STARTDATE|ENDDATE)");
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.PERSONSELL _PERSONSELL in _Data)
{
if (string.IsNullOrEmpty(_PERSONSELL.SERVERPARTCODE))
{
_PERSONSELL.SERVERPARTCODE = codes[0];
}
if (string.IsNullOrEmpty(_PERSONSELL.SHOPCODE))
{
_PERSONSELL.SHOPCODE = codes[1];
}
OperationDataHelper<HIGHWAY.PERSONSELL>.InsertTableData(_OracleHelper, _PERSONSELL,
"HIGHWAY_EXCHANGE.T_PERSONSELL", "PERSONSELL_ID", "HIGHWAY_EXCHANGE.SEQ_PERSONSELL.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.PERSONSELL>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加销售流水集合
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddTransfer_selldata(string code, string jsonString)
{
string _UpLoadServerPart = ConfigurationManager.AppSettings["UpLoadServerPart"];//获取需要同步到云平台的服务区流水数据
//获取数据库链接字符串
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog("添加销售流水集合:" + code);
//验证授权码是否合法
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
#region
//必填项
string[] _RequiredDatas = { "SELLDATA_DATE", "TICKETCODE", "SELLCOUNT",
"OFFPRICE", "FACTAMOUNT","TRANSFER_FIRSTDATAS" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
//启动单品云平台上传
if (!string.IsNullOrEmpty(_UpLoadServerPart) && _UpLoadServerPart.Contains(codes[0]))
{
//是否需要执行销售流水同步接口
if (!string.IsNullOrEmpty(_IsUploadColud) && _IsUploadColud == "1" && !string.IsNullOrEmpty(_ColudUrl))
{
Thread _Thread = new Thread(() => UpLoadSaleCloud(code, jsonString))
{
IsBackground = true
};
_Thread.Start();
}
}
//解析销售流水json字符串
List<HIGHWAY.TRANSFER_SELLDATA> _Data = JsonHelper.JSONStringToList<HIGHWAY.TRANSFER_SELLDATA>(jsonString);
if (_Data != null && _Data.Count > 0)
{
//执行数据插入
foreach (HIGHWAY.TRANSFER_SELLDATA _TRANSFER_SELLDATA in _Data)
{
_TRANSFER_SELLDATA.SERVERPARTCODE = codes[0];
_TRANSFER_SELLDATA.SHOPCODE = codes[1];
OperationDataHelper<HIGHWAY.TRANSFER_SELLDATA>.InsertTableData(_OracleHelper, _TRANSFER_SELLDATA,
"HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA", "TRANSFER_ID", "HIGHWAY_EXCHANGE.SEQ_TRANSFER_SELLDATA.NEXTVAL");
}
//启动流水拆解
if (!string.IsNullOrEmpty(_IsSaleSplit) && _IsSaleSplit == "1")
{
Thread _Thread = new Thread(() => SellDataSplit(_Data, codes))
{
IsBackground = true
};
_Thread.Start();
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.TRANSFER_SELLDATA>(_Data, "rows", false) + "}";
}
else
{
if (!string.IsNullOrEmpty(_IsLog) && _IsLog == "1" && !string.IsNullOrEmpty(_LogUrl))
{
Hashtable hashtable = new Hashtable
{
{ "jsonString", "添加失败JSON参数解析异常" }
};
SoapWSHelper.QuerySoapWebServiceString(_LogUrl, "LogWriteSendLog", hashtable);
}
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
//判断是否需要记录错误日志,用于同步销售流水至云平台时,记录出现错误的流水数据,可以进行复查
if (!string.IsNullOrEmpty(_IsLog) && _IsLog == "1" && !string.IsNullOrEmpty(_LogUrl))
{
Hashtable hashtable = new Hashtable
{
{ "jsonString", "添加失败:" + ex.ToString() }
};
SoapWSHelper.QuerySoapWebServiceString(_LogUrl, "LogWriteSendLog", hashtable); ;
}
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
[WebMethod]
public string GetCommand(string server_code)
{
try
{
if (!string.IsNullOrEmpty(server_code))
{
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
string _SqlString = string.Format(@"SELECT * FROM HIGHWAY_EXCHANGE.T_COMMAND
WHERE SERVER_CODE = '{0}' AND NVL(COMMAND_STATE,0) = 0 ", server_code);
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(_SqlString).Tables[0];
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"指令获取成功!\",\"rows\":" + JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"暂无指令!\",\"rows\":\"\"}";
}
}
}
catch { }
return "{\"error\": -1 ,\"msg\": \"指令获取失败!\",\"rows\":\"\"}";
}
#endregion
#region ->
/// <summary>
/// 获取收银机密码
/// </summary>
/// <returns></returns>
[WebMethod]
public string GetServerInfo(string server_code, string server_name)
{
try
{
if (!string.IsNullOrEmpty(server_code) && !string.IsNullOrEmpty(server_name))
{
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
string _SqlString = string.Format(@"SELECT SERVER_USERNAME,SERVER_PASSWORD FROM HIGHWAY_EXCHANGE.T_SERVERBASEINFO
WHERE SERVER_CODE = '{0}' AND SERVER_USERNAME = '{1}'", server_code, server_name);
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(_SqlString).Tables[0];
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"获取成功!\",\"rows\":" + JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"暂无数据!\",\"rows\":\"\"}";
}
}
}
catch { }
return "{\"error\": -1 ,\"msg\": \"获取失败!\",\"rows\":\"\"}";
}
#endregion
#region ->
/// <summary>
/// 获取收银机密码
/// </summary>
/// <returns></returns>
[WebMethod]
public string UpdateCommand(string servercode, string comid, string backinfo, string backstate, string backdate)
{
try
{
if (!string.IsNullOrEmpty(servercode) && !string.IsNullOrEmpty(comid) &&
!string.IsNullOrEmpty(backstate) && !string.IsNullOrEmpty(backdate))
{
OracleHelper _OracleHelper = new OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
string _SqlString = string.Format(@"UPDATE HIGHWAY_EXCHANGE.T_COMMAND SET FEEDBACK_STATE = {0},FEEDBACK_DATE = {1} {2}
WHERE COMMAND_ID = {3} AND SERVER_CODE = '{4}' ", backstate, "TO_DATE('" + backdate + "','YYYY/MM/DD HH24:MI:SS')",
string.IsNullOrEmpty(backinfo) ? "" : " AND FEEDBACK_INFO = '" + backinfo + "'", comid, servercode);
_OracleHelper.ExcuteSql(_SqlString);
return "{\"error\": 1 ,\"msg\": \"更新成功!\",\"rows\":\"\"}";
}
}
catch { }
return "{\"error\": -1 ,\"msg\": \" 更新失败!\",\"rows\":\"\"}";
}
#endregion
#region ->
/// <summary>
/// 查询数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string SearchData(string code, string DataType, string MachineCode, string StartDate, string EndDate)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
DataTable _DataTable = new DataTable();
string SqlString = "";
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
if (!string.IsNullOrEmpty(DataType))
{
switch (DataType)
{
case "Endaccount":
#region
if (!string.IsNullOrEmpty(MachineCode))
{
SqlString += " AND MACHINECODE = '" + MachineCode + "'";
}
if (!string.IsNullOrEmpty(StartDate))
{
SqlString += " AND ENDACCOUNT_DATE >= TO_DATE('" + StartDate + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(EndDate))
{
SqlString += " AND ENDACCOUNT_DATE <= TO_DATE('" + EndDate + "','YYYY/MM/DD HH24:MI:SS')";
}
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(@"SELECT '{0}' AS code,
SERVERPARTCODE,SHOPCODE,MACHINECODE,ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE,
ENDPERSONCODE,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,
CASH,CREDITCARD,TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY,CASHPAY
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_EX WHERE SERVERPARTCODE = '{1}' AND SHOPCODE = '{2}'{3}
ORDER BY ENDACCOUNT_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE",
code, codes[0], codes[1], SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": 0 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#endregion
case "Personsell":
#region
if (!string.IsNullOrEmpty(MachineCode))
{
SqlString += " AND MACHINECODE = '" + MachineCode + "'";
}
if (!string.IsNullOrEmpty(StartDate))
{
SqlString += " AND ENDDATE >= TO_DATE('" + StartDate + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(EndDate))
{
SqlString += " AND ENDDATE <= TO_DATE('" + EndDate + "','YYYY/MM/DD HH24:MI:SS')";
}
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(@"SELECT '{0}' AS code,
SERVERPARTCODE,SHOPCODE,MACHINECODE,STARTDATE,ENDDATE,CASHWORKER_CODE,
TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,
CASH,CREDITCARD,TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY,CASHPAY
FROM HIGHWAY_EXCHANGE.T_PERSONSELL_EX WHERE SERVERPARTCODE = '{1}' AND SHOPCODE = '{2}'{3}
ORDER BY ENDDATE,SERVERPARTCODE,SHOPCODE,MACHINECODE",
code, codes[0], codes[1], SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": 0 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#endregion
case "Commoditysale":
#region
if (!string.IsNullOrEmpty(StartDate))
{
SqlString += " AND ENDDATE >= TO_DATE('" + StartDate + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(EndDate))
{
SqlString += " AND ENDDATE <= TO_DATE('" + EndDate + "','YYYY/MM/DD HH24:MI:SS')";
}
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(@"SELECT '{0}' AS code,
SERVERPARTCODE,SHOPCODE,STARTDATE,ENDDATE,COMMODITY_TYPE,COMMODITY_CODE,
COMMODITY_NAME,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EX WHERE SERVERPARTCODE = '{1}' AND SHOPCODE = '{2}'{3}
ORDER BY SERVERPARTCODE,SHOPCODE,ENDDATE",
code, codes[0], codes[1], SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": 0 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#endregion
case "Transfer_sell":
#region
if (!string.IsNullOrEmpty(MachineCode))
{
SqlString += " AND MACHINECODE = '" + MachineCode + "'";
}
if (!string.IsNullOrEmpty(StartDate))
{
SqlString += " AND SELLDATA_DATE >= TO_DATE('" + StartDate + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(EndDate))
{
SqlString += " AND SELLDATA_DATE <= TO_DATE('" + EndDate + "','YYYY/MM/DD HH24:MI:SS')";
}
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(@"SELECT '{0}' AS code,
SERVERPARTCODE,SHOPCODE,MACHINECODE,SELLDATA_DATE,TICKETCODE,WORKERCODE,
SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS,
TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA WHERE SERVERPARTCODE = '{1}' AND SHOPCODE = '{2}'{3}
ORDER BY SERVERPARTCODE,SHOPCODE,MACHINECODE,SELLDATA_DATE",
code, codes[0], codes[1], SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
return "{\"error\": 1 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": 0 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#endregion
default:
return "{\"error\": -1 ,\"msg\": \"查询失败:数据类型解析异常!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"查询失败:数据类型解析异常!\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 查询流水主表数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string getStreamByCode(string serverpartcode, string shopcode, string sellmaster_code)
{
if (!string.IsNullOrEmpty(serverpartcode) && !string.IsNullOrEmpty(sellmaster_code))
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
DataSet _DataSetSellmaster = _OracleHelper.ExcuteSqlGetDataSet(string.Format(
@"SELECT * FROM HIGHWAY_EXCHANGE.T_SELLMASTER
WHERE SERVERPARTCODE = '{0}' AND SHOPCODE = '{1}' AND SELLMASTER_CODE = '{2}'",
serverpartcode, shopcode, sellmaster_code));
if (_DataSetSellmaster != null && _DataSetSellmaster.Tables.Count > 0)
{
DataSet _DataSetSelldetails = _OracleHelper.ExcuteSqlGetDataSet(string.Format(
@"SELECT * FROM HIGHWAY_EXCHANGE.T_SELLDETAILS WHERE SELLMASTER_CODE = '{0}'", sellmaster_code));
if (_DataSetSelldetails != null && _DataSetSelldetails.Tables.Count > 0)
{
return "{\"SELLMASTER\":" + JsonHelper.DataSetToJson(_DataSetSellmaster) +
",\"SELLDETAILS\":" + JsonHelper.DataSetToJson(_DataSetSelldetails) + "}";
}
}
}
return "";
}
#endregion
#region ->
/// <summary>
/// 获取实时流水数据(一小时)
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString">查询参数</param>
/// <returns></returns>
[WebMethod]
public string GetSellMasterByCode(string code, string jsonString)
{
SDK.OracleHelper _OracleHelper = new SDK.OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
return new SDK.SellMasterHelper().GetSellMaster(_OracleHelper, code, jsonString);
}
#endregion
#region ->
/// <summary>
/// 添加商品数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddGoodsInfo(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
WebService.SDK.LogHelper.WriteSendLog("添加商品数据:" + code);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
//WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "COMMODITY_TYPE", "COMMODITY_CODE", "COMMODITY_NAME", "COMMODITY_BARCODE",
"COMMODITY_UNIT", "COMMODITY_RULE", "COMMODITY_RETAILPRICE",
"COMMODITY_PURCHASEPRICE", "COMMODITY_MEMBERPRICE", "BUSINESSTYPE" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.COMMODITYEX> _Data = JsonHelper.JSONStringToList<HIGHWAY.COMMODITYEX>(jsonString);
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.COMMODITYEX _COMMODITYEX in _Data)
{
_COMMODITYEX.SERVERPARTCODE = codes[0];
_COMMODITYEX.SHOPCODE = codes[1];
OperationDataHelper<HIGHWAY.COMMODITYEX>.InsertTableData(_OracleHelper, _COMMODITYEX,
"HIGHWAY_STORAGE.T_COMMODITYEX", "COMMODITYEX_ID", "HIGHWAY_STORAGE.SEQ_COMMODITYEX.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.COMMODITYEX>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.Message.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
[WebMethod]
public string AddStockInfo(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
//WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "COMMODITY_CODE", "COMMODITY_NAME", "COMMODITY_BARCODE", "COMMODITY_UNIT",
"COMMODITY_RULE", "PURCHASE_TAXPRICE", "PURCHASE_PRICE", "OVERPLUSCOUNT",
"SURPLUS_TAXPRICE", "SURPLUS_PRICE", "OPERATE_STATE", "CHECK_INDEX" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.GOODSSTOCKEX> _Data = JsonHelper.JSONStringToList<HIGHWAY.GOODSSTOCKEX>(jsonString);
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.GOODSSTOCKEX _GOODSSTOCKEX in _Data)
{
_GOODSSTOCKEX.SERVERPARTCODE = codes[0];
_GOODSSTOCKEX.SHOPCODE = codes[1];
OperationDataHelper<HIGHWAY.GOODSSTOCKEX>.InsertTableData(_OracleHelper, _GOODSSTOCKEX,
"HIGHWAY_STORAGE.T_GOODSSTOCKEX", "GOODSSTOCKEX_ID", "HIGHWAY_STORAGE.SEQ_GOODSSTOCKEX.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.GOODSSTOCKEX>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
[WebMethod]
public string AddInSaleInfo(string code, string jsonString)
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
WebService.SDK.LogHelper.WriteSendLog("添加进销存数据:" + code);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
//WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
//必填项
string[] _RequiredDatas = { "COMMODITY_CODE","COMMODITY_NAME","COMMODITY_BARCODE","COMMODITY_UNIT","COMMODITY_RULE",
"PURCHASE_COUNT","PURCHASE_TAXAMOUNT","PURCHASE_AMOUNT","SELL_COUNT","SELL_TOTALTAXAMOUNT",
"SELL_TOTALAMOUNT","SELL_TAXCOST","SELL_COST","TRANSFER_COUNT","TRANSFER_TAXAMOUNT",
"TRANSFER_AMOUNT","RECEIVE_COUNT","RECEIVE_TAXAMOUNT","RECEIVE_AMOUNT","BACK_COUNT",
"BACK_TAXAMOUNT","BACK_AMOUNT","LOSSPROFIT_COUNT","LOSSPROFIT_TAXAMOUNT",
"LOSSPROFIT_AMOUNT","LOSSPROFIT_CHECKCOUNT","LOSSPROFIT_CHECKTAXAMOUNT"};
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.INSALES_STATISTICEX> _Data = JsonHelper.JSONStringToList<HIGHWAY.INSALES_STATISTICEX>(jsonString);
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.INSALES_STATISTICEX _GOODSSTOCKEX in _Data)
{
_GOODSSTOCKEX.SERVERPARTCODE = codes[0];
_GOODSSTOCKEX.SHOPCODE = codes[1];
OperationDataHelper<HIGHWAY.INSALES_STATISTICEX>.InsertTableData(_OracleHelper, _GOODSSTOCKEX,
"HIGHWAY_STORAGE.T_INSALES_STATISTICEX", "INSALES_STATISTICEX_ID", "HIGHWAY_STORAGE.SEQ_INSALES_STATISTICEX.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.INSALES_STATISTICEX>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
[WebMethod]
public string SearchDeliverData(string code, string jsonString)//string StartDate, string EndDate, string ShopCode
{
//记载传入参数信息
//WebService.SDK.LogHelper.WriteSendLog(code + "," + jsonString);
WebService.SDK.LogHelper.WriteSendLog("添加配送单数据:" + code);
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
string _AUTHORIZATION_CODE = ConfigurationManager.AppSettings["AUTHORIZATION_CODE"].ToString();
string SqlString = "", TableName = "SELLER_STORAGE.V_GOODSDELIVER", StartDate = "", EndDate = "",
ShopCode = "", SearchType = "", Deliver_Code = "", OtherCondition = "";
DataTable _DataTable = new DataTable(), _DetailDataTable = new DataTable();
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1],
_OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//读取参数信息
if (code.Split('|').Length > 1)
{
jsonString = code.Split('|')[1];
code = code.Split('|')[0];
}
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
#region
try
{
code = _Json["code"].ToString();
}
catch { }
try
{
StartDate = _Json["StartDate"].ToString();
}
catch { }
try
{
EndDate = _Json["EndDate"].ToString();
}
catch { }
try
{
ShopCode = _Json["ShopCode"].ToString();
}
catch { }
try
{
SearchType = _Json["SearchType"].ToString();
}
catch { }
try
{
Deliver_Code = _Json["Deliver_Code"].ToString();
}
catch { }
#endregion
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null && code != _AUTHORIZATION_CODE)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
try
{
if (_AUTHORIZATION_CODE == code)
{
TableName = "SELLER_STORAGE.V_GOODSDELIVER_GAS";
if (!string.IsNullOrEmpty(ShopCode))
{
SqlString = "SHOPCODE = '" + ShopCode + "'";
OtherCondition = " AND SHOPCODE = '" + ShopCode + "'";
}
else
{
SqlString = "1 = 1";
}
}
else
{
SqlString = "SERVERPART_CODE = '" + codes[0] + "' AND SHOPCODE = '" + codes[1] + "'";
OtherCondition = " AND SERVERPART_CODE = '" + codes[0] + "' AND SHOPCODE = '" + codes[1] + "'";
}
switch (SearchType)
{
case "0":
if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_GOODSDELIVER WHERE SHOPCODE = '" +
ShopCode + "' AND GOODSDELIVER_CODE = '" + Deliver_Code + "'").Tables[0].Rows.Count > 0)
{
return "{\"error\": 0 ,\"msg\": \"单据已更新!\",\"rows\":[{}]}";
}
else
{
try
{
SqlString = @"INSERT INTO HIGHWAY_EXCHANGE.T_GOODSDELIVER (GOODSDELIVER_CODE,SHOPCODE)
VALUES ('" + Deliver_Code + "','" + ShopCode + "')";
_OracleHelper.ExcuteSql(SqlString);
return "{\"error\": 1 ,\"msg\": \"更新成功!\",\"rows\":[{}]}";
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message + "\r\n" + SqlString);
return "{\"error\": -1 ,\"msg\": \"更新失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
default:
//必填项
if (!string.IsNullOrEmpty(StartDate) || !string.IsNullOrEmpty(EndDate))
{
DataTable OtherConditionTable = null;
#region
#region
if (!string.IsNullOrEmpty(StartDate))
{
try
{
SqlString += " AND DELIVER_DATE >= TO_DATE('" + DateTime.Parse(StartDate).ToString() +
"','YYYY/MM/DD HH24:MI:SS')";
OtherCondition += " AND DELIVER_DATE < TO_DATE('" + DateTime.Parse(StartDate).ToString() +
"','YYYY/MM/DD HH24:MI:SS')";
}
catch
{
SqlString += " AND DELIVER_DATE >= TO_DATE('" + StartDate.Substring(0, 4) + "/" + StartDate.Substring(4, 2) +
"/" + StartDate.Substring(6, 2) + " " + StartDate.Substring(8, 2) + ":" + StartDate.Substring(10, 2) +
":" + StartDate.Substring(12, 2) + "','YYYY/MM/DD HH24:MI:SS')";
OtherCondition += " AND DELIVER_DATE < TO_DATE('" + StartDate.Substring(0, 4) + "/" +
StartDate.Substring(4, 2) + "/" + StartDate.Substring(6, 2) + " " +
StartDate.Substring(8, 2) + ":" + StartDate.Substring(10, 2) + ":" +
StartDate.Substring(12, 2) + "','YYYY/MM/DD HH24:MI:SS')";
}
}
if (!string.IsNullOrEmpty(EndDate))
{
try
{
SqlString += " AND DELIVER_DATE <= TO_DATE('" + DateTime.Parse(EndDate).ToString() +
"','YYYY/MM/DD HH24:MI:SS')";
OtherCondition += " AND DELIVER_DATE < TO_DATE('" + DateTime.Parse(EndDate).ToString() +
"','YYYY/MM/DD HH24:MI:SS')";
}
catch
{
SqlString += " AND DELIVER_DATE <= TO_DATE('" + EndDate.Substring(0, 4) + "/" + EndDate.Substring(4, 2) +
"/" + EndDate.Substring(6, 2) + " " + EndDate.Substring(8, 2) + ":" + EndDate.Substring(10, 2) +
":" + EndDate.Substring(12, 2) + "','YYYY/MM/DD HH24:MI:SS')";
OtherCondition += " AND DELIVER_DATE < TO_DATE('" + EndDate.Substring(0, 4) + "/" +
EndDate.Substring(4, 2) + "/" + EndDate.Substring(6, 2) + " " +
EndDate.Substring(8, 2) + ":" + EndDate.Substring(10, 2) + ":" +
EndDate.Substring(12, 2) + "','YYYY/MM/DD HH24:MI:SS')";
}
}
#endregion
SqlString = string.Format(@"SELECT '{0}' AS code, SERVERPART_NAME,SERVERPARTSHOP_NAME,
TO_CHAR(DELIVER_DATE,'YYYYMMDDHH24MISS') AS DELIVER_DATE,GOODSDELIVER_CODE,GOODSDELIVER_STAFF,
GOODSDELIVER_STAFFTEL,ACTUAL_TAXAMOUNT,GOODSDELIVER_DESC,SERVERPARTSHOP_ID
FROM {1} WHERE {2}", !string.IsNullOrEmpty(ShopCode) ? ShopCode : code, TableName, SqlString);
if (SearchType == "1")
{
OtherConditionTable = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT WM_CONCAT(GOODSDELIVER_CODE || SHOPCODE) FROM HIGHWAY_EXCHANGE.T_GOODSDELIVER").Tables[0];
if (OtherConditionTable.Rows.Count > 0 && OtherConditionTable.Rows[0][0].ToString() != "")
{
SqlString += string.Format(@" UNION ALL
SELECT '{0}' AS code, SERVERPART_NAME,SERVERPARTSHOP_NAME,
TO_CHAR(DELIVER_DATE,'YYYYMMDDHH24MISS') AS DELIVER_DATE,GOODSDELIVER_CODE,GOODSDELIVER_STAFF,
GOODSDELIVER_STAFFTEL,ACTUAL_TAXAMOUNT,GOODSDELIVER_DESC,SERVERPARTSHOP_ID
FROM {1} WHERE GOODSDELIVER_CODE || SHOPCODE NOT IN ({2}){3}",
!string.IsNullOrEmpty(ShopCode) ? ShopCode : code, TableName, "'" +
OtherConditionTable.Rows[0][0].ToString().Replace(",", "','") + "'", OtherCondition);
}
else
{
SqlString += string.Format(@" UNION ALL
SELECT '{0}' AS code, SERVERPART_NAME,SERVERPARTSHOP_NAME,
TO_CHAR(DELIVER_DATE,'YYYYMMDDHH24MISS') AS DELIVER_DATE,GOODSDELIVER_CODE,GOODSDELIVER_STAFF,
GOODSDELIVER_STAFFTEL,ACTUAL_TAXAMOUNT,GOODSDELIVER_DESC,SERVERPARTSHOP_ID
FROM {1} WHERE 1 = 1{2}", !string.IsNullOrEmpty(ShopCode) ? ShopCode : code, TableName, OtherCondition);
}
}
_OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0], _OracleHelperSeller.Split(',')[1],
_OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(SqlString).Tables[0];
if (_DataTable.Rows.Count > 0)
{
object[] GOODSDELIVER_CODE = _DataTable.AsEnumerable().Select(r => r.Field<string>("GOODSDELIVER_CODE")).ToArray();
string _GOODSDELIVER_CODE = "", GOODSDELIVER_CODES = string.Format("'{0}'", string.Join("','", GOODSDELIVER_CODE));
_DetailDataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(
@"SELECT NEWSHOPCODE AS code,GOODSDELIVER_CODE,COMMODITY_NAME,COMMODITY_BARCODE,
COMMODITY_RULE,DELIVER_UNIT,UNIT_COUNT,DELIVER_COUNT,DELIVER_TOTALCOUNT,
AVERAGE_PRICE,DELIVER_PRICE AS DELIVER_TAXPRICE,GUARANTEE_MONTHS
FROM SELLER_STORAGE.V_GOODSDELIVERBILL_GAS
WHERE GOODSDELIVER_CODE IN ({1}) AND SERVERPARTSHOP_ID = {2}
ORDER BY GOODSDELIVER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RULE,DELIVER_UNIT,UNIT_COUNT,
DELIVER_COUNT,DELIVER_TOTALCOUNT,AVERAGE_PRICE,DELIVER_TAXPRICE,GUARANTEE_MONTHS",
!string.IsNullOrEmpty(ShopCode) ? ShopCode : code, GOODSDELIVER_CODES,
_DataTable.Rows[0]["SERVERPARTSHOP_ID"].ToString())).Tables[0];
int RowNum = 1;
for (int RowCount = 0; RowCount < _DetailDataTable.Rows.Count; RowCount++)
{
if (_GOODSDELIVER_CODE != _DetailDataTable.Rows[RowCount]["GOODSDELIVER_CODE"].ToString())
{
_GOODSDELIVER_CODE = _DetailDataTable.Rows[RowCount]["GOODSDELIVER_CODE"].ToString();
RowNum = 1;
}
_DetailDataTable.Rows[RowCount]["GOODSDELIVER_CODE"] = _DetailDataTable.Rows[RowCount]["code"].ToString() +
"-" + _GOODSDELIVER_CODE + "-" + RowNum.ToString().PadLeft(3, '0');
RowNum++;
}
return "{\"error\": 1 ,\"msg\": \"查询成功!\",\"rows\":" + JsonHelper.DataTableToJson(_DataTable) +
",\"details\":" + JsonHelper.DataTableToJson(_DetailDataTable) + "}";
}
else
{
return "{\"error\": 0 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#endregion
}
else
{
return "{\"error\": -1 ,\"msg\": \"查询失败:数据类型解析异常!\",\"rows\":[{}]}";
}
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message + "\r\n" + SqlString);
return "{\"error\": -1 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加订单数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string AddPurchaseData(string code, string jsonString)
{
try
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
WebService.SDK.LogHelper.WriteSendLog("添加订单数据:" + code);
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
}
//必填项
string[] _RequiredDatas = { "SHOPCODE", "FUUID", "TOTAL_COUNT" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.PURCHASEDETAIL> _Data = JsonHelper.JSONStringToList<HIGHWAY.PURCHASEDETAIL>(jsonString, "(PURCHASE_DATE)");
if (_Data != null && _Data.Count > 0)
{
foreach (HIGHWAY.PURCHASEDETAIL _PURCHASEDETAIL in _Data)
{
if (string.IsNullOrEmpty(_PURCHASEDETAIL.SERVERPARTCODE))
{
_PURCHASEDETAIL.SERVERPARTCODE = codes[0];
}
if (string.IsNullOrEmpty(_PURCHASEDETAIL.SHOPCODE))
{
_PURCHASEDETAIL.SHOPCODE = codes[1];
}
OperationDataHelper<HIGHWAY.PURCHASEDETAIL>.InsertTableData(_OracleHelper, _PURCHASEDETAIL,
"HIGHWAY_STORAGE.T_PURCHASEDETAIL", "PURCHASEDETAIL_ID", "HIGHWAY_STORAGE.SEQ_PURCHASEDETAIL.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson<HIGHWAY.PURCHASEDETAIL>(_Data, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 移动支付交易统计传输接口
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString">Json格式数据</param>
/// <returns></returns>
[WebMethod]
public string DailyMobilepay(string code, string jsonString)
{
try
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteReceiveLog(code + "\r\n" + jsonString);
//string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
//if (codes == null)
//{
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
//}
WebService.SDK.CommonHelper.MobilePayOperators _MobilePayOperators;
try
{
if (!Enum.TryParse(code.ToDecrypt(), out _MobilePayOperators))
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误\",\"rows\":[{}]}";
}
}
catch
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误\",\"rows\":[{}]}";
}
string[] _RequiredDatas = { "MERCHANT_CODE", "TICKET_AMOUNT", "DEDUCTION_RATE", "TAXFEE_AMOUNT", "TRADE_DATE" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.MPSEPARATE> _MPSEPARATEList = JsonHelper.JSONStringToList<HIGHWAY.MPSEPARATE>(jsonString, "(TRADE_DATE)");
if (_MPSEPARATEList != null && _MPSEPARATEList.Count > 0)
{
foreach (HIGHWAY.MPSEPARATE _MPSEPARATE in _MPSEPARATEList)
{
if (string.IsNullOrWhiteSpace(_MPSEPARATE.TRANSACTION_TRENCH))
{
_MPSEPARATE.TRANSACTION_TRENCH = ((int)_MobilePayOperators).ToString();
}
OperationDataHelper<HIGHWAY.MPSEPARATE>.InsertTableData(_OracleHelper, _MPSEPARATE,
"HIGHWAY_EXCHANGE.T_MPSEPARATE", "MPSEPARATE_ID", "HIGHWAY_EXCHANGE.SEQ_MPSEPARATE.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson(_MPSEPARATEList, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 移动支付交易统计传输接口
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString">Json格式数据</param>
/// <returns></returns>
[WebMethod]
public string DailyMobilepayList(string code, string jsonString)
{
try
{
string _OracleConnStrPayList = ConfigurationManager.AppSettings["OracleConnStr"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStrPayList.Split(',')[0],
_OracleConnStrPayList.Split(',')[1], _OracleConnStrPayList.Split(',')[2], _OracleConnStrPayList.Split(',')[3]);
WebService.SDK.LogHelper.WriteReceiveLog(code + "\r\n" + jsonString);
//string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelper, code);
//if (codes == null)
//{
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误或已过期\",\"rows\":[{}]}";
//}
WebService.SDK.CommonHelper.MobilePayOperators _MobilePayOperators;
try
{
if (!Enum.TryParse(code.ToDecrypt(), out _MobilePayOperators))
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误\",\"rows\":[{}]}";
}
}
catch
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": -1 ,\"msg\": \"添加失败:授权码错误\",\"rows\":[{}]}";
}
string[] _RequiredDatas = { "MERCHANT_CODE", "TICKET_AMOUNT", "DEDUCTION_RATE", "TAXFEE_AMOUNT", "TRADE_DATE" };
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData.ToUpper()) == null &&
_Json.Property(_RequiredData.ToLower()) == null)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中JSON缺少必要参数" + _RequiredData + "\",\"rows\":[{}]}";
}
}
}
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
List<HIGHWAY.MobilePayment_Records> recordsList = JsonHelper.JSONStringToList<HIGHWAY.MobilePayment_Records>(jsonString, "(TRADE_DATE)");
if (recordsList != null && recordsList.Count > 0)
{
foreach (HIGHWAY.MobilePayment_Records _MobilePayment_Records in recordsList)
{
if (string.IsNullOrWhiteSpace(_MobilePayment_Records.Transaction_Trench))
{
_MobilePayment_Records.Transaction_Trench = ((int)_MobilePayOperators).ToString();
}
if (_MobilePayment_Records.Ticket_Code.Contains("-") || _MobilePayment_Records.Ticket_Code.Substring(0, 1) == "B")
{
_MobilePayment_Records.Ticket_Type = 1;
}
else
{
_MobilePayment_Records.Ticket_Type = 0;
}
try
{
//拆分服务区、门店、机器编号
string ticketCode = _MobilePayment_Records.Ticket_Code;
_MobilePayment_Records.ServerPart_Code = ticketCode.Substring(0, 6);
_MobilePayment_Records.ServerPartShop_Code = (ticketCode.Length == 28 ? ticketCode.Substring(6, 4) : ticketCode.Substring(6, 6));
_MobilePayment_Records.MachineCode = (ticketCode.Length == 28 ? ticketCode.Substring(10, 4) : ticketCode.Substring(12, 4));
//拆分下单时间
string dateString = ticketCode.Substring(ticketCode.Length - 14, 8);
string hourString = ticketCode.Substring(ticketCode.Length - 6, 6);
string dateStr = dateString.Substring(0, 4) + "-" + dateString.Substring(4, 2) + "-" + dateString.Substring(6, 2);
string hourStr = hourString.Substring(0, 2) + ":" + hourString.Substring(2, 2) + ":" + hourString.Substring(4, 2);
DateTime Order_Date = Convert.ToDateTime(dateStr + " " + hourStr);
//string minutes = ticketCode.Substring(ticketCode.Length - 14, 8);
_MobilePayment_Records.Order_Date = Order_Date;
}
catch (Exception ex)
{
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "DailyMobilepayList", "移动支付交易流水传输接口");
}
OperationDataHelper<HIGHWAY.MobilePayment_Records>.InsertTableData(_OracleHelper, _MobilePayment_Records,
"HIGHWAY_SELLDATA.T_MOBILEPAYMENT_RECORDS", "MOBILEPAYMENT_RECORDS_ID",
"HIGHWAY_SELLDATA.SEQ_MOBILEPAYMENT_RECORDS.NEXTVAL");
}
return "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":" +
JsonHelper.ListToJson(recordsList, "rows", false) + "}";
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败JSON参数解析异常\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.ToString() + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
#region ->
/// <summary>
/// 获取企业信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetCompanyInfo(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "Start_Date", "End_Date", "time_stamp", "Membership_Company" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
_Dictionary.Clear();
_Dictionary.Add("time_stamp", _Json["time_stamp"].ToString());
_Dictionary.Add("Membership_Company", _Json["Membership_Company"].ToString());
_Dictionary.Add("Start_Date", _Json["Start_Date"].ToString());
_Dictionary.Add("End_Date", _Json["End_Date"].ToString());
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string SqlString = "";
DataTable _DataTable = new DataTable();
if (!string.IsNullOrEmpty(_Dictionary["Membership_Company"].ToString()))
{
SqlString += " AND Membership_Company = '" + _Dictionary["Membership_Company"].ToString() + "'";
}
if (!string.IsNullOrEmpty(_Dictionary["Start_Date"].ToString()))
{
SqlString += " AND OPERATE_DATE >= TO_DATE('" + _Dictionary["Start_Date"].ToString() + "','YYYY/MM/DD')";
}
if (!string.IsNullOrEmpty(_Dictionary["End_Date"].ToString()))
{
SqlString += " AND OPERATE_DATE < TO_DATE('" + _Dictionary["End_Date"].ToString() + "','YYYY/MM/DD') + 1";
}
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(string.Format(@"SELECT
TO_CHAR(COMPANY_ID) AS MEMBERSHIP_COMPANY,COMPANY_NAME,COMPANY_SHORTNAME,OPERATE_DATE
FROM MEMBERSHIP_STORAGE.T_COMPANY WHERE 1 = 1{0}
ORDER BY OPERATE_DATE,COMPANY_NAME", SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
foreach (DataRow _DataRow in _DataTable.Rows)
{
_DataRow["MEMBERSHIP_COMPANY"] = _DataRow["MEMBERSHIP_COMPANY"].ToEncrypt();
}
_DataTable.Columns["MEMBERSHIP_COMPANY"].ColumnName = "Membership_Company";
_DataTable.Columns["COMPANY_NAME"].ColumnName = "Company_Name";
_DataTable.Columns["COMPANY_SHORTNAME"].ColumnName = "Company_Shortname";
_DataTable.Columns["OPERATE_DATE"].ColumnName = "Operate_Date";
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonHelper.DataTableToJson(_DataTable) + "}";
}
else
{
return "{\"error\": 101 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取会员信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetMembershipInfo(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "time_stamp", "Membership_Card", "Membership_Name", "Membership_Mobilephone" };
//"Membership_Type", "Start_Date", "End_Date", "Membership_ID", "Membership_Company",
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Membership_Card":
case "Membership_Name":
case "Membership_Mobilephone":
EmptyCount++;
if (EmptyCount == 3)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
//_Dictionary.Add("time_stamp", _Json["time_stamp"].ToString());
//_Dictionary.Add("Membership_ID", _Json["Membership_ID"].ToString());
//_Dictionary.Add("Membership_Company", _Json["Membership_Company"].ToString());
//_Dictionary.Add("Membership_Type", _Json["Membership_Type"].ToString());
//_Dictionary.Add("Membership_Name", _Json["Membership_Name"].ToString());
//_Dictionary.Add("Membership_Mobilephone", _Json["Membership_Mobilephone"].ToString());
//_Dictionary.Add("Start_Date", _Json["Start_Date"].ToString());
//_Dictionary.Add("End_Date", _Json["End_Date"].ToString());
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "MemberQuery");
sb.AppendFormat("&Membership_Card={0}", _Dictionary["Membership_Card"].ToString());
sb.AppendFormat("&Membership_Name={0}", _Dictionary["Membership_Name"].ToString());
sb.AppendFormat("&Membership_Mobilephone={0}", _Dictionary["Membership_Mobilephone"].ToString());
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Company_Name"] = _JObject["Result_Data"]["Company_Name"];
info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
info["Membership_Sex"] = _JObject["Result_Data"]["Membership_Sex"];
info["Membership_Mobilephone"] = _JObject["Result_Data"]["Membership_Mobilephone"];
info["Membership_Card"] = _JObject["Result_Data"]["Membership_Card"];
info["Operate_Date"] = _JObject["Result_Data"]["Operate_Date"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取卡户信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetICCardInfo(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "time_stamp", "Membership_Name", "Membership_Card" };
//"Membership_ID", "Start_Date", "End_Date",
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Membership_Card":
case "Membership_Name":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
//_Dictionary.Add("time_stamp", _Json["time_stamp"].ToString());
//_Dictionary.Add("Membership_ID", _Json["Membership_ID"].ToString());
//_Dictionary.Add("ICCard_Code", _Json["ICCard_Code"].ToString());
//_Dictionary.Add("Membership_Card", _Json["Membership_Card"].ToString());
//_Dictionary.Add("Start_Date", _Json["Start_Date"].ToString());
//_Dictionary.Add("End_Date", _Json["End_Date"].ToString());
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "ICCardQuery");
sb.AppendFormat("&Membership_Card={0}", _Dictionary["Membership_Card"].ToString());
sb.AppendFormat("&Membership_Name={0}", _Dictionary["Membership_Name"].ToString());
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
info["ICCard_Statue"] = _JObject["Result_Data"]["ICCard_Statue"];
info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
info["Operate_Date"] = _JObject["Result_Data"]["Operate_Date"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 订单支付
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderPay(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"支付失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"支付失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "time_stamp" , "ECode", "Membership_Card", "TicketCode", //"Membership_ID",
"MachineCode", "Recode_Type", "Recode_Amount" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "ECode": //会员电子码
case "Membership_Card": //会员实体卡号
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"支付失败JSON缺少必要支付参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"支付失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
//实付金额
if (_Json["Fact_Amount"] != null)
{
_Dictionary.Add("Fact_Amount", _Json["Fact_Amount"].ToString());
}
//抵用积分
if (_Json["Consume_Point"] != null)
{
_Dictionary.Add("Consume_Point", _Json["Consume_Point"].ToString());
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"支付失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"支付失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_SERVERPART_ID = "NULL", _SERVERPART_NAME = "",
_SERVERPARTSHOP_ID = "NULL", _SHOPNAME = "", _PROVINCE_CODE = "",
_TicketCode = _Dictionary["TicketCode"].ToString(),
_MachineCode = _Dictionary["MachineCode"].ToString(),
_ECode = _Dictionary.ContainsKey("ECode") ? _Dictionary["ECode"].ToString() : "",
_Membership_Card = _Dictionary.ContainsKey("Membership_Card") ? _Dictionary["Membership_Card"].ToString() : "",
_Recode_Type = _Dictionary["Recode_Type"].ToString(),
_Recode_Amount = _Dictionary["Recode_Amount"].ToString(),
_Recode_Date = DateTime.Now.ToString(),
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
if (!_Dictionary.TryGetValue("Fact_Amount", out string _Fact_Amount))
{
_Fact_Amount = _Recode_Amount;
}
if (!_Dictionary.TryGetValue("Consume_Point", out string _Consume_Point))
{
_Consume_Point = "0";
}
#endregion
//获取服务区门店信息
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
_PROVINCE_CODE = _SERVERPARTSHOP.Rows[0]["PROVINCE_CODE"].ToString();
_SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
_SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
_SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
_SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OrderPay");
sb.AppendFormat("&Membership_ECode={0}", _ECode);
sb.AppendFormat("&Membership_Card={0}", _Membership_Card);
sb.AppendFormat("&Fact_Amount={0}", _Fact_Amount);
sb.AppendFormat("&Consume_Point={0}", _Consume_Point);
sb.AppendFormat("&Recode_Amount={0}", _Recode_Amount);
sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&Recode_Type={0}", _Dictionary["Recode_Type"].ToString());
sb.AppendFormat("&Province_Code={0}", _PROVINCE_CODE);
sb.AppendFormat("&Serverpart_ID={0}", _SERVERPART_ID);
sb.AppendFormat("&Serverpart_Code={0}", _ServerpartCode);
sb.AppendFormat("&Serverpart_Name={0}", _SERVERPART_NAME);
sb.AppendFormat("&ServerpartShop_ID={0}", _SERVERPARTSHOP_ID);
sb.AppendFormat("&ServerpartShop_Code={0}", _ShopCode);
sb.AppendFormat("&ServerpartShop_Name={0}", _SHOPNAME);
sb.AppendFormat("&MachineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&Recode_Date={0}", _Recode_Date);
sb.AppendFormat("&PlatformCode={0}", _PlatformCode);
sb.AppendFormat("&RecordPoint={0}", 0); //海鼎饭卡支付不做积分
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
HIGHWAY.RECHARGERECORD _RECHARGERECORD = new HIGHWAY.RECHARGERECORD();
_RECHARGERECORD.Serverpart_Name = _SERVERPART_NAME;
_RECHARGERECORD.ShopName = _SHOPNAME;
_RECHARGERECORD.MachineCode = _Dictionary["MachineCode"].ToString();
_RECHARGERECORD.TicketCode = _Dictionary["TicketCode"].ToString();
_RECHARGERECORD.PlatformCode = _PlatformCode;
_RECHARGERECORD.Recode_Type = int.Parse(_JObject["Result_Data"]["Recode_Type"].ToString());
_RECHARGERECORD.Recode_Amount = double.Parse(_Recode_Amount).Round(2);
_RECHARGERECORD.Fact_Amount = double.Parse(_Fact_Amount).Round(2);
_RECHARGERECORD.Consume_Point = double.Parse(_Consume_Point).Round(2);
_RECHARGERECORD.Current_Point = double.Parse(_JObject["Result_Data"]["Current_Point"].ToString()).Round(2);
_RECHARGERECORD.Total_Point = double.Parse(_JObject["Result_Data"]["Total_Point"].ToString()).Round(2);
//double.Parse(_Consume_Point).Round(2);
//_RECHARGERECORD.Account_Balance = decimal.Parse(_ACCOUNT_BALANCE) - decimal.Parse(_Recode_Amount);
_RECHARGERECORD.Pay_State = "Success";
_RECHARGERECORD.Recode_Date = DateTime.Parse(_Recode_Date);
return "{\"error\": 100 ,\"msg\": \"支付成功!\",\"rows\":[" +
JsonHelper.ObjectToJson(_RECHARGERECORD) + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"支付失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 订单查询
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderQuery(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "TicketCode", "PlatformCode", "Start_Date", "End_Date", "time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0, TimeCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "TicketCode":
case "PlatformCode":
EmptyCount++;
_Dictionary.Add(_RequiredData, "");
break;
case "Start_Date":
case "End_Date":
TimeCount++;
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
switch (_RequiredData)
{
case "Start_Date":
case "End_Date":
try
{
DateTime.ParseExact(_Json[_RequiredData].ToString(), "yyyyMMddHHmmss",
System.Globalization.CultureInfo.InvariantCulture).ToString();
}
catch
{
return "{\"error\": 200 ,\"msg\": \"查询失败:时间格式不正确!\",\"rows\":[{}]}";
}
break;
}
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (EmptyCount == 2 && TimeCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OrderQuery");
sb.AppendFormat("&Start_Date={0}", _Dictionary["Start_Date"].ToString());
sb.AppendFormat("&PlatformCode={0}", _Dictionary["PlatformCode"].ToString());
sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&End_Date={0}", _Dictionary["End_Date"].ToString());
sb.AppendFormat("&Serverpart_Code={0}", codes[0]);
sb.AppendFormat("&ShopCode={0}", codes[1]);
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" +
_JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region -> 退
/// <summary>
/// 获取会员、卡户信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderRefund(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"退款失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"退款失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "TicketCode", "PlatformCode", "time_stamp", "Refund_Amount" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"退款失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"退款失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"退款失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OrderRefund");
sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&Refund_Amount={0}", _Dictionary["Refund_Amount"].ToString());
sb.AppendFormat("&Ori_PlatformCode={0}", _Dictionary["PlatformCode"].ToString());
sb.AppendFormat("&Serverpart_Code={0}", codes[0]);
sb.AppendFormat("&ShopCode={0}", codes[1]);
sb.AppendFormat("&PlatformCode={0}", code + DateTime.Now.ToString("yyyyMMddHHmmss"));
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"退款成功!\",\"rows\":[" +
_JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"退款失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 会员电子优惠券验证接口
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string CouponCheck(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"优惠券校验失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"优惠券校验失败:授权码错误\",\"rows\":[{}]}";
}
#region
string _UseType = ""; //0查验优惠券1使用优惠券
string[] _RequiredDatas = { "sign", "time_stamp" , "UseType", "ECode", "Membership_Card",
"MachineCode", "TicketCode", "CouponCode", "ConsumeAmount" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Membership_Card":
case "ECode":
break;
case "MachineCode":
case "TicketCode":
case "ConsumeAmount":
if (_UseType == "1")
{
return "{\"error\": 200 ,\"msg\": \"优惠券校验失败JSON缺少必要支付参数\",\"rows\":[{}]}";
}
break;
default:
return "{\"error\": 200 ,\"msg\": \"优惠券校验失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
if (_RequiredData.ToLower() == "usetype")
{
_UseType = _Json[_RequiredData].ToString();
}
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"优惠券校验失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"优惠券校验失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
if (string.IsNullOrEmpty(_Dictionary["CouponCode"].ToString()))
{
return "{\"error\": 205 ,\"msg\": \"优惠券校验失败:找不到优惠券信息!\",\"rows\":[{}]}";
}
DataTable _CONSUMPTIONRECORD = new DataTable();
List<string> SQLStringArray = new List<string>();
string _ServerpartCode = codes[0]; //服务区编码
string _ShopCode = codes[1]; //门店编码
string _SERVERPART_ID = ""; //服务区ID
string _SERVERPART_NAME = ""; //服务区名称
string _SERVERPARTSHOP_ID = ""; //门店ID
string _SHOPNAME = ""; //门店名称
string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODE"]; //省份编码
string _MachineCode = _Dictionary["MachineCode"].ToString(); //机器号
string _TicketCode = _Dictionary["TicketCode"].ToString(); //订单号
string _CouponCode = _Dictionary["CouponCode"].ToString(); //优惠券编号
if (_CouponCode.Length < 6)
{
return "{\"error\": 208 ,\"msg\": \"优惠券核销失败:无效优惠券!\",\"rows\":[{}]}";
}
//_CouponCode = _CouponCode.Substring(0, 6);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
_PROVINCE_CODE = _SERVERPARTSHOP.Rows[0]["PROVINCE_CODE"].ToString();
_SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
_SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
_SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
_SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
if (_UseType == "0")
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "CheckCoupon");
sb.AppendFormat("&COUPON_CODE={0}", _CouponCode);
sb.AppendFormat("&PROVINCE_CODE={0}", _PROVINCE_CODE);
sb.AppendFormat("&SERVERPARTSHOP_ID={0}", _SERVERPARTSHOP_ID);
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["ResultCode"].ToString())
{
case "100":
info["Serverpart_Name"] = _SERVERPART_NAME; //优惠券ID
info["ShopName"] = _SHOPNAME; //门店名称
info["MachineCode"] = _MachineCode; //机器编码
info["TicketCode"] = _TicketCode; //订单编号(商户系统)
info["PlatformCode"] = ""; //优惠券金额
info["CouponName"] = _JObject["CouponName"]; //优惠券名称
info["CouponCode"] = _JObject["CouponCode"]; //优惠券编码
info["CouponType"] = _JObject["CouponType"]; //优惠形式1000满减券2000折扣券
info["Threshold_Amount"] = _JObject["Threshold_Amount"]; //起付金额
info["CouponAmount"] = _JObject["CouponAmount"]; //优惠券价值满100减20则为20;8折券则为0.8
info["Coupon_State"] = _JObject["Coupon_State"]; //优惠券状态0未使用1已使用2已失效
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
case "102":
return "{\"error\": 102 ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
case "999":
default:
return "{\"error\": 999 ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
}
}
else
{
string _ConsumeAmount = _Dictionary["ConsumeAmount"].ToString(); //实付金额
string _PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
if (string.IsNullOrEmpty(_ConsumeAmount) || decimal.Parse(_ConsumeAmount) < 0)
{
return "{\"error\": 204 ,\"msg\": \"优惠券核销失败:交易金额错误!\",\"rows\":[{}]}";
}
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "WriteOffCoupon");
//sb.AppendFormat("&CONSUMPTIONRECORD_ID={0}", _CONSUMPTIONRECORD_ID);
sb.AppendFormat("&CONSUMPTIONRECORD_TYPE={0}", 5050);
sb.AppendFormat("&COUPON_CODE={0}", _CouponCode);
sb.AppendFormat("&PROVINCE_CODE={0}", _PROVINCE_CODE);
sb.AppendFormat("&SERVERPARTSHOP_ID={0}", _SERVERPARTSHOP_ID);
sb.AppendFormat("&MACHINECODE={0}", _MachineCode);
sb.AppendFormat("&ORDERAMOUNT={0}", _ConsumeAmount);
sb.AppendFormat("&CONSUMEAMOUNT={0}", _ConsumeAmount);
sb.AppendFormat("&VIPRATEAMOUNT={0}", 0);
sb.AppendFormat("&TICKET_CODE={0}", _TicketCode);
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["ResultCode"].ToString())
{
case "100":
info["Serverpart_Name"] = _SERVERPART_NAME; //优惠券ID
info["ShopName"] = _SHOPNAME; //门店名称
info["MachineCode"] = _MachineCode; //机器编码
info["TicketCode"] = _TicketCode; //订单编号(商户系统)
info["PlatformCode"] = _PlatformCode; //优惠券金额
info["CouponName"] = _JObject["CouponName"]; //优惠券名称
info["CouponCode"] = _JObject["CouponCode"]; //优惠券编码
info["CouponType"] = _JObject["CouponType"]; //优惠形式1000满减券2000折扣券
info["CouponAmount"] = _JObject["CouponAmount"]; //优惠券价值满100减20则为20;8折券则为0.8
info["Coupon_State"] = _JObject["Coupon_State"]; //优惠券状态0未使用1已使用2已失效
return "{\"error\": 100 ,\"msg\": \"核销成功!\",\"rows\":[" + info + "]}";
case "999":
return "{\"error\": 999 ,\"msg\": \"核销失败!" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
default:
return "{\"error\": 305 ,\"msg\": \"核销失败!" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
}
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"优惠券验证失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 会员电子优惠券验证接口
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string CouponRevoke(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"优惠券撤销失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"优惠券撤销失败:授权码错误\",\"rows\":[{}]}";
}
#region
string[] _RequiredDatas = { "sign", "time_stamp", "TicketCode", "CouponCode" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"优惠券撤销失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"优惠券撤销失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"优惠券撤销失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
if (string.IsNullOrEmpty(_Dictionary["CouponCode"].ToString()))
{
return "{\"error\": 205 ,\"msg\": \"优惠券撤销失败:找不到优惠券信息!\",\"rows\":[{}]}";
}
DataTable _CONSUMPTIONRECORD = new DataTable();
List<string> SQLStringArray = new List<string>();
string _ServerpartCode = codes[0]; //服务区编码
string _ShopCode = codes[1]; //门店编码
string _SERVERPART_ID = ""; //服务区ID
string _SERVERPART_NAME = ""; //服务区名称
string _SERVERPARTSHOP_ID = ""; //门店ID
string _SHOPNAME = ""; //门店名称
string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODE"]; //省份编码
string _TicketCode = _Dictionary["TicketCode"].ToString(); //订单号
string _CouponCode = _Dictionary["CouponCode"].ToString(); //优惠券编号
if (_CouponCode.Length < 6)
{
return "{\"error\": 208 ,\"msg\": \"优惠券撤销失败:无效优惠券!\",\"rows\":[{}]}";
}
//_CouponCode = _CouponCode.Substring(0, 6);
//获取服务区、门店基础信息
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
_PROVINCE_CODE = _SERVERPARTSHOP.Rows[0]["PROVINCE_CODE"].ToString();
_SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
_SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
_SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
_SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "RevokeCoupon");
sb.AppendFormat("&CouponCode={0}", _CouponCode);
sb.AppendFormat("&TicketCode={0}", _TicketCode);
sb.AppendFormat("&provinceCode={0}", _PROVINCE_CODE);
sb.AppendFormat("&serverpartshopID={0}", _SERVERPARTSHOP_ID);
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["ResultCode"].ToString())
{
case "100":
info["TicketCode"] = _TicketCode; //订单编号(商户系统)
info["CouponCode"] = _CouponCode; //优惠券编码
info["CouponName"] = _JObject["CouponName"]; //优惠券名称
return "{\"error\": 100 ,\"msg\": \"撤销成功!\",\"rows\":[" + info + "]}";
case "999":
return "{\"error\": 999 ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
default:
return "{\"error\": 102 ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"优惠券撤销失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
#region ->
//#region 方法 -> 获取微信会员信息
///// <summary>
///// 获取会员信息
///// </summary>
///// <param name="jsonString"></param>
///// <returns></returns>
//[WebMethod]
//public string GetWeChatMembershipInfo(string code, string jsonString)
//{
// try
// {
// string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
// OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
// OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
// _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
// WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
// if (string.IsNullOrEmpty(code) || code.Length < 10)
// {
// return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
// }
// string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
// string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
// if (codes == null)
// {
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
// }
// #region 必填项验证
// string[] _RequiredDatas = { "sign", "WeChatPhone", "WeChatUnionID", "Time_stamp" };
// Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
// if (!string.IsNullOrEmpty(jsonString))
// {
// int EmptyCount = 0; //非必填项未传参数量
// JObject _Json = JObject.Parse(jsonString);
// foreach (string _RequiredData in _RequiredDatas)
// {
// if (_Json.Property(_RequiredData) == null)
// {
// switch (_RequiredData)
// {
// case "WeChatPhone":
// case "WeChatUnionID":
// EmptyCount++;
// if (EmptyCount == 2)
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
// }
// _Dictionary.Add(_RequiredData, "");
// break;
// default:
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
// _RequiredData + "\",\"rows\":[{}]}";
// }
// }
// else if (_RequiredData.ToLower() != "sign")
// {
// _Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
// }
// }
// if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
// {
// return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
// }
// }
// else
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
// }
// #endregion
// //查询会员信息
// StringBuilder sb = new StringBuilder();
// sb.AppendFormat("?action_type={0}", "MemberQuery");
// sb.AppendFormat("&Membership_Mobilephone={0}", _Dictionary["WeChatPhone"].ToString());
// string parameters = sb.ToString();
// string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
// string RequestUrl = _BaseUrl + parameters;
// string format = "application/json;charset=UTF-8";
// string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
// JObject _JObject = JObject.Parse(reString);
// JObject info = new JObject();
// switch (_JObject["Result_Code"].ToString())
// {
// case "100":
// info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
// info["Membership_Level"] = _JObject["Result_Data"]["Membership_Level"];
// info["Membership_Code"] = _JObject["Result_Data"]["Membership_Card"];
// info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
// info["Membership_Sex"] = _JObject["Result_Data"]["Membership_Sex"];
// info["Membership_Birthday"] = _JObject["Result_Data"]["Membership_Birthday"];
// info["Membership_MobilePhone"] = _JObject["Result_Data"]["Membership_Mobilephone"];
// info["Membership_Address"] = _JObject["Result_Data"]["Membership_Address"];
// info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
// info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
// return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
// default:
// return "{\"error\": 101 ,\"msg\": \"查询成功!无会员信息!\",\"rows\":[{}]}";
// }
// }
// catch (Exception ex)
// {
// WebService.SDK.LogHelper.WriteSendLog(ex.Message);
// return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
// }
//}
//#endregion
//#region 方法 -> 获取会员收货地址
///// <summary>
///// 获取会员收货地址
///// </summary>
///// <param name="jsonString"></param>
///// <returns></returns>
//[WebMethod]
//public string GetReceiveAddress(string code, string jsonString)
//{
// try
// {
// string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
// OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
// OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
// _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
// WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
// if (string.IsNullOrEmpty(code) || code.Length < 10)
// {
// return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
// }
// string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
// string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
// if (codes == null)
// {
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
// }
// #region 必填项验证
// string[] _RequiredDatas = { "sign", "WeChatPhone", "WeChatUnionID", "Time_stamp" };
// Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
// if (!string.IsNullOrEmpty(jsonString))
// {
// int EmptyCount = 0; //非必填项未传参数量
// JObject _Json = JObject.Parse(jsonString);
// foreach (string _RequiredData in _RequiredDatas)
// {
// if (_Json.Property(_RequiredData) == null)
// {
// switch (_RequiredData)
// {
// case "WeChatPhone":
// case "WeChatUnionID":
// EmptyCount++;
// if (EmptyCount == 2)
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
// }
// _Dictionary.Add(_RequiredData, "");
// break;
// default:
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
// _RequiredData + "\",\"rows\":[{}]}";
// }
// }
// else if (_RequiredData.ToLower() != "sign")
// {
// _Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
// }
// }
// if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
// {
// return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
// }
// }
// else
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
// }
// #endregion
// //查询会员信息
// StringBuilder sb = new StringBuilder();
// sb.AppendFormat("?action_type={0}", "getReceiveAddress");
// sb.AppendFormat("&WeChatPhone={0}", _Dictionary["WeChatPhone"].ToString());
// sb.AppendFormat("&WeChatUnionID={0}", _Dictionary["WeChatUnionID"].ToString());
// string parameters = sb.ToString();
// string _BaseUrl = ConfigurationManager.AppSettings["BaseUrl"];
// string RequestUrl = _BaseUrl + parameters;
// string format = "application/json;charset=UTF-8";
// string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
// JObject _JObject = JObject.Parse(reString);
// JObject info = new JObject();
// switch (_JObject["ResultCode"].ToString())
// {
// case "100":
// return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + _JObject["Data"] + "]}";
// default:
// return "{\"error\": " + _JObject["ResultCode"].ToString() + " ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
// }
// }
// catch (Exception ex)
// {
// WebService.SDK.LogHelper.WriteSendLog(ex.Message);
// return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
// }
//}
//#endregion
//#region 方法 -> 同步会员收货地址
///// <summary>
///// 同步会员收货地址
///// </summary>
///// <param name="jsonString"></param>
///// <returns></returns>
//[WebMethod]
//public string UploadReceiveAddress(string code, string jsonString)
//{
// try
// {
// string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
// OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
// OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
// _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
// WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
// if (string.IsNullOrEmpty(code) || code.Length < 10)
// {
// return "{\"error\": 201 ,\"msg\": \"同步失败:授权码错误\",\"rows\":[{}]}";
// }
// string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
// string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
// if (codes == null)
// {
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": 201 ,\"msg\": \"同步失败:授权码错误\",\"rows\":[{}]}";
// }
// #region 必填项验证
// string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID", "ReceiveAddressID", "ReceiveCity",
// "ReceiveAddress", "ReceiveLinker_Name", "ReceiveLinker_Sex", "Linker_MobilePhone", "IsDefault", "TargetType" };
// Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
// if (!string.IsNullOrEmpty(jsonString))
// {
// int EmptyCount = 0; //非必填项未传参数量
// JObject _Json = JObject.Parse(jsonString);
// foreach (string _RequiredData in _RequiredDatas)
// {
// if (_Json.Property(_RequiredData) == null)
// {
// switch (_RequiredData)
// {
// case "ReceiveAddressID":
// _Dictionary.Add(_RequiredData, "");
// break;
// case "WeChatPhone":
// case "WeChatUnionID":
// EmptyCount++;
// if (EmptyCount == 2)
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
// }
// _Dictionary.Add(_RequiredData, "");
// break;
// default:
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
// _RequiredData + "\",\"rows\":[{}]}";
// }
// }
// else if (_RequiredData.ToLower() != "sign")
// {
// _Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
// }
// }
// if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
// {
// return "{\"error\": 202 ,\"msg\": \"同步失败:数据签名不通过!\",\"rows\":[{}]}";
// }
// }
// else
// {
// return "{\"error\": 200 ,\"msg\": \"同步失败JSON参数解析异常\",\"rows\":[{}]}";
// }
// #endregion
// //记录会员消费信息
// StringBuilder sb = new StringBuilder();
// sb.AppendFormat("?action_type={0}", "uploadReceiveAddress");
// sb.AppendFormat("&WeChatPhone={0}", _Dictionary["WeChatPhone"].ToString());
// sb.AppendFormat("&WeChatUnionID={0}", _Dictionary["WeChatUnionID"].ToString());
// sb.AppendFormat("&ReceiveCity={0}", HttpUtility.UrlEncode(_Dictionary["ReceiveCity"].ToString()));
// sb.AppendFormat("&ReceiveAddress={0}", HttpUtility.UrlEncode(_Dictionary["ReceiveAddress"].ToString()));
// sb.AppendFormat("&ReceiveLinker_Name={0}", HttpUtility.UrlEncode(_Dictionary["ReceiveLinker_Name"].ToString()));
// sb.AppendFormat("&ReceiveLinker_Sex={0}", _Dictionary["ReceiveLinker_Sex"].ToString());
// sb.AppendFormat("&Linker_MobilePhone={0}", _Dictionary["Linker_MobilePhone"].ToString());
// sb.AppendFormat("&IsDefault={0}", _Dictionary["IsDefault"].ToString());
// sb.AppendFormat("&TargetType={0}", _Dictionary["TargetType"].ToString());
// sb.AppendFormat("&ReceiveAddressID={0}", _Dictionary["ReceiveAddressID"].ToString());
// string parameters = sb.ToString();
// string _BaseUrl = ConfigurationManager.AppSettings["BaseUrl"];
// string RequestUrl = _BaseUrl + parameters;
// string format = "application/json;charset=UTF-8";
// string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
// JObject _JObject = JObject.Parse(reString);
// JObject info = new JObject();
// switch (_JObject["ResultCode"].ToString())
// {
// case "100":
// info["ReceiveAddressID"] = _Dictionary["ReceiveAddressID"]; //收货地址内码
// info["ReceiveCity"] = _Dictionary["ReceiveCity"]; //收货市区
// info["ReceiveAddress"] = _Dictionary["ReceiveAddress"]; //收货详细地址
// info["ReceiveLinker_Name"] = _Dictionary["ReceiveLinker_Name"]; //收货人
// info["ReceiveLinker_Sex"] = _Dictionary["ReceiveLinker_Sex"]; //收货人性别
// info["Linker_MobilePhone"] = _Dictionary["Linker_MobilePhone"]; //手机号码
// info["IsDefault"] = _Dictionary["IsDefault"]; //是否默认地址
// info["TargetType"] = _Dictionary["TargetType"]; //地址标签
// return "{\"error\": 100 ,\"msg\": \"同步成功!\",\"rows\":[" + info + "]}";
// default:
// return "{\"error\": " + _JObject["ResultCode"].ToString() + " ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
// }
// }
// catch (Exception ex)
// {
// WebService.SDK.LogHelper.WriteSendLog(ex.Message);
// return "{\"error\": 999 ,\"msg\": \"同步失败:" + ex.Message + "\",\"rows\":[{}]}";
// }
//}
//#endregion
//#region 方法 -> 记录消费信息
///// <summary>
///// 记录消费信息
///// </summary>
///// <param name="jsonString"></param>
///// <returns></returns>
//[WebMethod]
//public string RecordConsumption(string code, string jsonString)
//{
// try
// {
// string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
// //内部会员信息数据库链接
// OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
// //授权码验证数据库链接
// OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
// _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
// WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
// if (string.IsNullOrEmpty(code) || code.Length < 10)
// {
// return "{\"error\": 201 ,\"msg\": \"记录失败:授权码错误\",\"rows\":[{}]}";
// }
// string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
// string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
// if (codes == null)
// {
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": 201 ,\"msg\": \"记录失败:授权码错误\",\"rows\":[{}]}";
// }
// #region 必填项验证
// string _Recode_Type = "", _Recode_Desc = "";
// string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID", "Recode_Type", "Membership_Name",
// "TicketCode", "Recode_Amount", "Consume_Point", "Fact_Amount", "Recode_Date", "Recode_Desc", "CommodityInfo"};
// Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
// if (!string.IsNullOrEmpty(jsonString))
// {
// int EmptyCount = 0; //非必填项未传参数量
// JObject _Json = JObject.Parse(jsonString);
// foreach (string _RequiredData in _RequiredDatas)
// {
// if (_Json.Property(_RequiredData) == null)
// {
// if (_Recode_Type != "9000" && _RequiredData == "Recode_Desc")
// {
// continue;
// }
// else
// {
// switch (_RequiredData)
// {
// case "Membership_Name":
// case "CommodityInfo":
// break;
// case "Consume_Point":
// //提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
// if (code.StartsWith("330005") || code == "888888012002")
// {
// _Dictionary.Add("Consume_Point", "0");
// }
// break;
// case "WeChatPhone":
// case "WeChatUnionID":
// EmptyCount++;
// if (EmptyCount == 2)
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
// }
// //提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
// if (code.StartsWith("330005") || code == "888888012002")
// {
// _Dictionary.Add(_RequiredData, "");
// }
// break;
// default:
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
// _RequiredData + "\",\"rows\":[{}]}";
// }
// }
// }
// else if (_RequiredData.ToLower() != "sign")
// {
// if (_RequiredData == "Recode_Type")
// {
// _Recode_Type = _Json[_RequiredData].ToString();
// }
// else if (_RequiredData == "Recode_Desc")
// {
// _Recode_Desc = _Json[_RequiredData].ToString();
// }
// _Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
// }
// }
// string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
// if (_Json["sign"].ToString() != sign)
// {
// //2020/7/27 朱梓毅增加处理逻辑
// //交易金额、实付金额签名保留两位小数
// _Dictionary.Remove("Fact_Amount");
// _Dictionary.Remove("Recode_Amount");
// _Dictionary.Add("Fact_Amount", ((decimal)_Json["Fact_Amount"]).ToString("F2"));
// _Dictionary.Add("Recode_Amount", ((decimal)_Json["Recode_Amount"]).ToString("F2"));
// sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
// if (_Json["sign"].ToString() != sign)
// {
// return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
// }
// }
// //非必填项
// _Dictionary.Clear();
// foreach (var item in _Json)
// {
// _Dictionary.Add(item.Key, _Json[item.Key].ToString());
// }
// }
// else
// {
// return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
// }
// #endregion
// #region 参数定义
// string _ServerpartCode = codes[0], _ShopCode = codes[1],
// _SERVERPART_ID = "NULL", _SERVERPART_NAME = "",
// _SERVERPARTSHOP_ID = "NULL", _SHOPNAME = "",
// _PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
// //业主单位
// int OwnerUnitId = 13;
// try
// {
// OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
// }
// catch { }
// //消费类型转译
// switch (_Recode_Type)
// {
// //余额支付
// case "2000":
// _Recode_Type = "3000";
// break;
// //积分兑换
// case "3000":
// _Recode_Type = "3050";
// break;
// //微信支付
// case "4000":
// _Recode_Type = "2000";
// break;
// }
// //获取消费门店信息
// DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
// @"SELECT
// A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
// FROM
// HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
// WHERE
// A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
// _ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
// if (_SERVERPARTSHOP.Rows.Count > 0)
// {
// _SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
// _SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
// _SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
// _SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
// }
// #endregion
// #region 记录会员消费信息
// StringBuilder sb = new StringBuilder();
// sb.AppendFormat("?action_type={0}", "OrderPay");
// sb.AppendFormat("&Membership_Mobilephone={0}", _Dictionary["WeChatPhone"].ToString());
// sb.AppendFormat("&Recode_Amount={0}", _Dictionary["Recode_Amount"].ToString());
// sb.AppendFormat("&Fact_Amount={0}", _Dictionary["Fact_Amount"].ToString());
// if (_Dictionary.ContainsKey("Consume_Point"))
// {
// sb.AppendFormat("&Consume_Point={0}", _Dictionary["Consume_Point"].ToString());
// }
// sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
// sb.AppendFormat("&Recode_Type={0}", _Recode_Type);
// sb.AppendFormat("&Serverpart_ID={0}", _SERVERPART_ID);
// sb.AppendFormat("&Serverpart_Code={0}", _ServerpartCode);
// sb.AppendFormat("&Serverpart_Name={0}", _SERVERPART_NAME);
// sb.AppendFormat("&ServerpartShop_ID={0}", _SERVERPARTSHOP_ID);
// sb.AppendFormat("&ServerpartShop_Code={0}", _ShopCode);
// sb.AppendFormat("&ServerpartShop_Name={0}", _SHOPNAME);
// sb.AppendFormat("&Recode_Date={0}", _Dictionary["Recode_Date"].ToString());
// sb.AppendFormat("&PlatformCode={0}", _PlatformCode);
// sb.AppendFormat("&OwnerUnit_ID={0}", OwnerUnitId);
// string parameters = sb.ToString();
// string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
// string RequestUrl = _BaseUrl + parameters;
// string format = "application/json;charset=UTF-8";
// string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
// JObject _JObject = JObject.Parse(reString);
// JObject info = new JObject();
// switch (_JObject["Result_Code"].ToString())
// {
// case "100":
// info["TicketCode"] = _Dictionary["TicketCode"].ToString();
// info["PlatformCode"] = _PlatformCode;
// info["Recode_Type"] = _Dictionary["Recode_Type"].ToString();
// info["Recode_Amount"] = _Dictionary["Recode_Amount"];
// info["Fact_Amount"] = _Dictionary["Fact_Amount"];
// if (_Dictionary.ContainsKey("Consume_Point"))
// {
// info["Consume_Point"] = _Dictionary["Consume_Point"];
// }
// info["Recode_Date"] = _Dictionary["Recode_Date"];
// info["Pay_State"] = "Success";
// info["Recode_Desc"] = _Recode_Desc;
// return "{\"error\": 100 ,\"msg\": \"记录成功!\",\"rows\":[" + info + "]}";
// default:
// string _Result_Code = _JObject["Result_Code"].ToString();
// switch (_Result_Code)
// {
// case "205":
// _Result_Code = "203";
// break;
// case "301":
// _Result_Code = "102";
// break;
// }
// return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
// }
// #endregion
// }
// catch (Exception ex)
// {
// WebService.SDK.LogHelper.WriteSendLog(ex.Message);
// return "{\"error\": 999 ,\"msg\": \"记录失败:" + ex.Message + "\",\"rows\":[{}]}";
// }
//}
//#endregion
//#region 方法 -> 撤销交易记录
///// <summary>
///// 记录消费信息
///// </summary>
///// <param name="jsonString"></param>
///// <returns></returns>
//[WebMethod]
//public string RevokeConsumption(string code, string jsonString)
//{
// try
// {
// string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
// OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
// OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
// _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
// WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
// if (string.IsNullOrEmpty(code) || code.Length < 10)
// {
// return "{\"error\": 201 ,\"msg\": \"撤销失败:授权码错误\",\"rows\":[{}]}";
// }
// string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
// string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
// if (codes == null)
// {
// WebService.SDK.LogHelper.WriteSendLog(code);
// return "{\"error\": 201 ,\"msg\": \"撤销失败:授权码错误\",\"rows\":[{}]}";
// }
// #region 必填项验证
// string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID", "TicketCode" };
// Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
// if (!string.IsNullOrEmpty(jsonString))
// {
// int EmptyCount = 0; //非必填项未传参数量
// JObject _Json = JObject.Parse(jsonString);
// foreach (string _RequiredData in _RequiredDatas)
// {
// if (_Json.Property(_RequiredData) == null)
// {
// switch (_RequiredData)
// {
// case "WeChatPhone":
// case "WeChatUnionID":
// EmptyCount++;
// if (EmptyCount == 2)
// {
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
// }
// //提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
// if (code.StartsWith("330005") || code == "888888012002")
// {
// _Dictionary.Add(_RequiredData, "");
// }
// break;
// default:
// return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
// _RequiredData + "\",\"rows\":[{}]}";
// }
// }
// else if (_RequiredData.ToLower() != "sign")
// {
// _Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
// }
// }
// if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
// {
// return "{\"error\": 202 ,\"msg\": \"撤销失败:数据签名不通过!\",\"rows\":[{}]}";
// }
// }
// else
// {
// return "{\"error\": 200 ,\"msg\": \"撤销失败JSON参数解析异常\",\"rows\":[{}]}";
// }
// #endregion
// //撤销会员消费记录
// StringBuilder sb = new StringBuilder();
// sb.AppendFormat("?action_type={0}", "revokeConsumptionByWeChat");
// sb.AppendFormat("&WeChatPhone={0}", _Dictionary["WeChatPhone"].ToString());
// if (_Dictionary.ContainsKey("WeChatUnionID"))
// {
// sb.AppendFormat("&WeChatUnionID={0}", _Dictionary["WeChatUnionID"].ToString());
// }
// sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
// int OwnerUnitId = 13;
// try
// {
// OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
// }
// catch (Exception)
// {
// }
// sb.AppendFormat("&OwnerUnitId={0}", OwnerUnitId);
// string parameters = sb.ToString();
// string _BaseUrl = ConfigurationManager.AppSettings["BaseUrl"];
// string RequestUrl = _BaseUrl + parameters;
// string format = "application/json;charset=UTF-8";
// string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
// JObject _JObject = JObject.Parse(reString);
// JObject info = new JObject();
// switch (_JObject["ResultCode"].ToString())
// {
// case "100":
// info["TicketCode"] = _Dictionary["TicketCode"].ToString();
// info["PlatformCode"] = _JObject["Data"]["PlatformCode"] == null ? "" : _JObject["Data"]["PlatformCode"].ToString();
// info["Pay_State"] = "Revoke";
// return "{\"error\": 100 ,\"msg\": \"撤销成功!\",\"rows\":[" + info + "]}";
// default:
// return "{\"error\": " + _JObject["ResultCode"].ToString() + " ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
// }
// }
// catch (Exception ex)
// {
// WebService.SDK.LogHelper.WriteSendLog(ex.Message);
// return "{\"error\": 999 ,\"msg\": \"撤销失败:" + ex.Message + "\",\"rows\":[{}]}";
// }
//}
//#endregion
#endregion
#region ->
/// <summary>
/// 获取门店移动支付通道配置
/// </summary>
/// <param name="serverPartCode">服务区编码</param>
/// <param name="businessType">业态编码</param>
/// <returns></returns>
[WebMethod]
public string MobilePayConfig(string serverPartCode, string businessType)
{
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
return WebService.SDK.PayCommon.MobilePayConfig.ShopPaymentConfig(_OracleHelper, serverPartCode, businessType);
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
#region ->
/// <summary>
/// 收银机反馈通用上报接口
/// </summary>
/// <param name="feedbackType">上报类型:
/// StateFeedback、BaseInfoFeedback</param>
/// <param name="jsonData">json数据字符串</param>
/// <returns></returns>
[WebMethod]
public string FeedbackUpload(string feedbackType, string jsonData)
{
if (string.IsNullOrWhiteSpace(feedbackType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 305,
ResultDesc = "上报类型错误"
});
}
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackHelper().Feedback(_OracleHelper, feedbackType, jsonData));
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog($"状态反馈异常[{feedbackType}]{ex.Message}");
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 999,
ResultDesc = $"系统异常:{ex.Message}"
});
}
}
#endregion
#region ->
/// <summary>
/// 收银机状态反馈通用下载接口
/// </summary>
/// <param name="readType">下载类型:
/// CommodityMachine</param>
/// <param name="jsonData">设备信息Json数据字符串</param>
/// <returns></returns>
[WebMethod]
public string FeedbackDownload(string readType, string jsonData)
{
if (string.IsNullOrWhiteSpace(readType))
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 305,
ResultDesc = "下载类型错误"
});
}
try
{
WebService.SDK.OracleHelper _OracleHelper = new WebService.SDK.OracleHelper(
_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
return new WebService.SDK.FeedbackHelper().DataRead(_OracleHelper, readType, jsonData);
}
catch (Exception ex)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(
new WebService.SDK.FeedbackResult<string>()
{
ResultCode = 999,
ResultDesc = $"系统异常:{ex.Message}"
});
}
}
#endregion
#region ->
/// <summary>
/// 获取实时交易流水
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetSellMasterList(string code, string jsonString)
{
JObject info = new JObject();
try
{
if (string.IsNullOrEmpty(_OracleConnStr))
{
info["Error"] = "999";
info["Msg"] = "配置错误,请重试!";
return info.ToString();
}
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
info["Error"] = "200";
info["Msg"] = "查询失败:授权码错误!";
return info.ToString();
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
info["Error"] = "200";
info["Msg"] = "查询失败:授权码错误!";
return info.ToString();
}
#region
string[] _RequiredDatas = { "sign", "StartDate", "EndDate", "Time_stamp", "SearchType" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
info["Error"] = "200";
info["Msg"] = "查询失败JSON缺少必要参数" + _RequiredData;
return info.ToString();
}
}
_Dictionary.Clear();
_Dictionary.Add("Time_stamp", _Json["Time_stamp"].ToString());
_Dictionary.Add("SearchType", _Json["SearchType"].ToString());
_Dictionary.Add("StartDate", _Json["StartDate"].ToString());
_Dictionary.Add("EndDate", _Json["EndDate"].ToString());
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
info["Error"] = "200";
info["Msg"] = "查询失败:数据签名不通过!";
return info.ToString();
}
if (_Json.Property("SellMasterCode") != null)
{
_Dictionary.Add("SellMasterCode", _Json["SellMasterCode"].ToString());
}
else
{
_Dictionary.Add("SellMasterCode", "");
}
}
else
{
info["Error"] = "200";
info["Msg"] = "查询失败JSON参数解析异常";
return info.ToString();
}
#endregion
string _SERVERPARTCODE = codes[0];
string _SHOPCODE = codes[1];
//生成查询条件
string SqlString = "";
string DetilsSqlString = "";
DataTable _DataTable = new DataTable();
DataTable _DetilsDataTable = new DataTable();
if (!string.IsNullOrEmpty(_Dictionary["SellMasterCode"].ToString()))
{
SqlString += " AND SELLMASTER_CODE IN ('" + _Dictionary["SellMasterCode"].ToString().Replace(",", "','") + "')";
DetilsSqlString += " AND A.SELLMASTER_CODE IN ('" + _Dictionary["SellMasterCode"].ToString().Replace(",", "','") + "')";
}
if (!string.IsNullOrEmpty(_Dictionary["StartDate"].ToString()))
{
SqlString += " AND SELLMASTER_DATE >= TO_DATE('" + _Dictionary["StartDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
DetilsSqlString += " AND A.SELLMASTER_DATE >= TO_DATE('" + _Dictionary["StartDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(_Dictionary["EndDate"].ToString()))
{
SqlString += " AND SELLMASTER_DATE < TO_DATE('" + _Dictionary["EndDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
DetilsSqlString += " AND A.SELLMASTER_DATE < TO_DATE('" + _Dictionary["EndDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(_SERVERPARTCODE) && !string.IsNullOrEmpty(_SHOPCODE))
{
SqlString += " AND SERVERPARTCODE = '" + _SERVERPARTCODE + "' AND SHOPCODE = '" + _SHOPCODE + "'";
DetilsSqlString += " AND A.SERVERPARTCODE = '" + _SERVERPARTCODE + "' AND A.SHOPCODE = '" + _SHOPCODE + "'";
}
//查询主流水
_DataTable = _OracleHelperEx.ExcuteSqlGetDataSet(string.Format(
@"SELECT
A.SERVERPARTCODE,A.SERVERPART_NAME AS SERVERPARTNAME,A.SHOPCODE,A.SHOPNAME,
A.MACHINECODE,A.SELLWORKER_CODE AS SELLWORKERCODE,A.SELLWORKER_NAME AS SELLWORKERNAME,
A.SELLMASTER_CODE AS SELLMASTERCODE,A.SELLMASTER_COUNT AS TOTALCOUNT,
A.SELLMASTER_AMOUNT AS TOTALAMOUNT,A.SELLMASTER_OFFPRICE AS TOTALDISCOUNT,
A.CASHPAY,A.BANKPAY,CASE A.PAYMENT_TYPE WHEN 'WECHATPAY' THEN A.MOBILEPAY ELSE 0 END AS WECHATPAY,
CASE A.PAYMENT_TYPE WHEN 'ALIPAY' THEN A.MOBILEPAY ELSE 0 END AS ALIPAY,
(A.OTHERPAY + A.COUPONPAY + A.INTERNALPAY) AS OTHERPAY,A.SELLMASTER_DATE AS SELLMASTERDATE
FROM HIGHWAY_EXCHANGE.T_SELLMASTER A WHERE EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDETAILS B
WHERE A.SELLMASTER_CODE = B.SELLMASTER_CODE HAVING SUM(B.SELLDETAILS_AMOUNT) = A.SELLMASTER_AMOUNT){0}
ORDER BY A.SELLMASTER_DATE,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE", SqlString)).Tables[0];
//查询明细
if (!string.IsNullOrEmpty(_Dictionary["SearchType"].ToString()) && _Dictionary["SearchType"].ToString() == "1")
{
_DetilsDataTable = _OracleHelperEx.ExcuteSqlGetDataSet(string.Format(
@"SELECT
B.COMMODITY_BARCODE,B.COMMODITY_NAME,B.SELLDETAILS_COUNT AS SELLCOUNT,
B.SELLDETAILS_PRICE AS PRICE,B.SELLDETAILS_OFFPRICE AS DISCOUNT,
B.SELLDETAILS_AMOUNT AS SELLAMOUNT,A.SELLMASTER_CODE
FROM HIGHWAY_EXCHANGE.T_SELLDETAILS B,HIGHWAY_EXCHANGE.T_SELLMASTER A
WHERE A.SELLMASTER_CODE = B.SELLMASTER_CODE{0}", DetilsSqlString)).Tables[0];
}
if (_DataTable.Rows.Count > 0 && _DetilsDataTable.Rows.Count <= 0)
{
//decimal.TryParse(_DataTable.Compute("SUM(TOTALCOUNT)", "").ToString(), out decimal _TotalCount);
decimal.TryParse(_DataTable.Compute("SUM(TOTALAMOUNT)", "").ToString(), out decimal _TotalAmount);
var SaleDateList = _DataTable.AsEnumerable().Select(p => new
{
ServerPartCode = p.Field<string>("SERVERPARTCODE"),
ServerPartName = p.Field<string>("SERVERPARTNAME"),
ShopCode = p.Field<string>("SHOPCODE"),
ShopName = p.Field<string>("SHOPNAME"),
MachineCode = p.Field<string>("MACHINECODE"),
SellWorkerCode = p.Field<string>("SELLWORKERCODE"),
SellWorerName = p.Field<string>("SELLWORKERNAME"),
SellMasterCode = p.Field<string>("SELLMASTERCODE"),
TotalCount = p.Field<decimal?>("TOTALCOUNT"),
TotalAmount = p.Field<decimal?>("TOTALAMOUNT"),
TotalDiscount = p.Field<decimal?>("TOTALDISCOUNT"),
CashPay = p.Field<decimal?>("CASHPAY"),
BankPay = p.Field<decimal?>("BANKPAY"),
WeChatPay = p.Field<decimal?>("WECHATPAY"),
AliPay = p.Field<decimal?>("ALIPAY"),
OtherPay = p.Field<decimal?>("OTHERPAY"),
SellMasterDate = p.Field<DateTime?>("SELLMASTERDATE")
}).ToList();
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = _DataTable.Rows.Count;
info["TotalAmount"] = _TotalAmount;
info["Data"] = JsonHelper.ListToJObject(SaleDateList)["List"];
}
else if (_DataTable.Rows.Count > 0 && _DetilsDataTable.Rows.Count > 0)
{
//decimal.TryParse(_DataTable.Compute("SUM(TOTALCOUNT)", "").ToString(), out decimal _TotalCount);
decimal.TryParse(_DataTable.Compute("SUM(TOTALAMOUNT)", "").ToString(), out decimal _TotalAmount);
var SaleDetilsList = _DetilsDataTable.AsEnumerable().Select(p => new
{
CommodityBarcode = p.Field<string>("COMMODITY_BARCODE"),
CommodityName = p.Field<string>("COMMODITY_NAME"),
SellCount = p.Field<decimal?>("SELLCOUNT"),
Price = p.Field<decimal?>("PRICE"),
Discount = p.Field<decimal?>("DISCOUNT"),
SellAmount = p.Field<decimal?>("SELLAMOUNT"),
SellMasterCode = p.Field<string>("SELLMASTER_CODE")
}).ToList();
var SaleDateList = from t in _DataTable.AsEnumerable()
group t by new
{
t1 = t.Field<string>("SERVERPARTCODE"),
t2 = t.Field<string>("SERVERPARTNAME"),
t3 = t.Field<string>("SHOPCODE"),
t4 = t.Field<string>("SHOPNAME"),
t5 = t.Field<string>("MACHINECODE"),
t6 = t.Field<string>("SELLWORKERCODE"),
t7 = t.Field<string>("SELLWORKERNAME"),
t8 = t.Field<string>("SELLMASTERCODE"),
t9 = t.Field<decimal?>("TOTALCOUNT"),
t10 = t.Field<decimal?>("TOTALAMOUNT"),
t11 = t.Field<decimal?>("TOTALDISCOUNT"),
t12 = t.Field<decimal?>("CASHPAY"),
t13 = t.Field<decimal?>("BANKPAY"),
t14 = t.Field<decimal?>("WECHATPAY"),
t15 = t.Field<decimal?>("ALIPAY"),
t16 = t.Field<decimal?>("OTHERPAY"),
t17 = t.Field<DateTime?>("SELLMASTERDATE")
} into p
select new
{
ServerPartCode = p.Key.t1,
ServerPartName = p.Key.t2,
ShopCode = p.Key.t3,
ShopName = p.Key.t4,
MachineCode = p.Key.t5,
SellWorkerCode = p.Key.t6,
SellWorerName = p.Key.t7,
SellMasterCode = p.Key.t8,
TotalCount = p.Key.t9,
TotalAmount = p.Key.t10,
TotalDiscount = p.Key.t11,
CashPay = p.Key.t12,
BankPay = p.Key.t13,
WeChatPay = p.Key.t14,
AliPay = p.Key.t15,
OtherPay = p.Key.t16,
SellMasterDate = p.Key.t17,
SellDetails = SaleDetilsList.Where(l => l.SellMasterCode == p.Key.t8)
};
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = _DataTable.Rows.Count;
info["TotalAmount"] = _TotalAmount;
info["Data"] = JsonHelper.ListToJObject(SaleDateList.ToList())["List"];
}
else
{
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = 0;
info["TotalAmount"] = 0;
info["Data"] = "[]";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
//return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
info["Error"] = "999";
info["Msg"] = "查询失败:" + ex.Message;
}
return info.ToString();
}
#endregion
#region -> -使
/// <summary>
///
/// </summary>
/// <param name="code"></param>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetSalesDataList(string Start_Date, string End_Date, string ServerPart_Code, string ServerPartShop_Code)
{
JObject info = new JObject();
try
{
if (string.IsNullOrEmpty(_OracleConnStr))
{
info["Error"] = "999";
info["Msg"] = "配置错误,请重试!";
return info.ToString();
}
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
//生成查询条件
string SqlString = "";
DataTable _DataTable = new DataTable();
if (!string.IsNullOrEmpty(Start_Date))
{
SqlString += " AND SELLMASTER_DATE >= TO_DATE('" + Start_Date + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(End_Date))
{
SqlString += " AND SELLMASTER_DATE <= TO_DATE('" + End_Date + "','YYYY/MM/DD HH24:MI:SS')";
}
if (!string.IsNullOrEmpty(ServerPart_Code))
{
SqlString += " AND SERVERPARTCODE IN ('" + ServerPart_Code.Replace(",", "','") + "')";
}
if (!string.IsNullOrEmpty(ServerPartShop_Code))
{
SqlString += " AND SHOPCODE IN ('" + ServerPartShop_Code.Replace(",", "','") + "')";
}
//查询主流水
_DataTable = _OracleHelperEx.ExcuteSqlGetDataSet(string.Format(
@"SELECT
A.SERVERPARTCODE,A.SERVERPART_NAME AS SERVERPARTNAME,A.SHOPCODE,A.SHOPNAME,
A.MACHINECODE,A.SELLMASTER_DATE AS SELLMASTERDATE,A.SELLMASTER_COUNT AS TOTALCOUNT,
A.SELLMASTER_AMOUNT AS TOTALAMOUNT,A.SELLMASTER_OFFPRICE AS TOTALDISCOUNT,
CASE A.PAYMENT_TYPE WHEN 'WECHATPAY' THEN A.MOBILEPAY ELSE 0 END AS WECHATPAY,
CASE A.PAYMENT_TYPE WHEN 'ALIPAY' THEN A.MOBILEPAY ELSE 0 END AS ALIPAY,
MOBILEPAY,MOBILEPAY_CODE,MERCHANT_ORDER,SELLMASTER_DESC,SELLMASTER_STATE
FROM HIGHWAY_SELLDATA.T_SELLMASTER A WHERE MOBILEPAY <> 0{0}", SqlString)).Tables[0];
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = _DataTable.Rows.Count;
info["Data"] = QRWL.Common.JsonHelper.DataTableToJObject(_DataTable);
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
info["Error"] = "999";
info["Msg"] = "查询失败:" + ex.Message;
}
return info.ToString();
}
#endregion
#region ->
/// <summary>
/// 获取日结营收数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetEndAccountList(string code, string jsonString)
{
JObject info = new JObject();
try
{
string _OracleEndConnStr = ConfigurationManager.AppSettings["OracleEndConnStr"];
if (string.IsNullOrEmpty(_OracleEndConnStr))
{
info["Error"] = "999";
info["Msg"] = "配置错误,请重试!";
return info.ToString();
}
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
info["Error"] = "200";
info["Msg"] = "查询失败:授权码错误!";
return info.ToString();
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
info["Error"] = "200";
info["Msg"] = "查询失败:授权码错误!";
return info.ToString();
}
#region
string[] _RequiredDatas = { "sign", "StartDate", "EndDate", "Time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
info["Error"] = "200";
info["Msg"] = "查询失败JSON缺少必要参数" + _RequiredData;
return info.ToString();
}
}
_Dictionary.Clear();
_Dictionary.Add("Time_stamp", _Json["Time_stamp"].ToString());
_Dictionary.Add("StartDate", _Json["StartDate"].ToString());
_Dictionary.Add("EndDate", _Json["EndDate"].ToString());
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
info["Error"] = "200";
info["Msg"] = "查询失败:数据签名不通过!";
return info.ToString();
}
}
else
{
info["Error"] = "200";
info["Msg"] = "查询失败JSON参数解析异常";
return info.ToString();
}
#endregion
//生成查询条件
string _SERVERPARTCODE = codes[0];
string _SHOPCODE = codes[1];
string SqlString = "";
DataTable _DataTable = new DataTable();
//过滤统计开始日期
if (!string.IsNullOrEmpty(_Dictionary["StartDate"].ToString()))
{
SqlString += " AND A.ENDACCOUNT_DATE >= TO_DATE('" + _Dictionary["StartDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
}
//过滤统计结束日期
if (!string.IsNullOrEmpty(_Dictionary["EndDate"].ToString()))
{
SqlString += " AND A.ENDACCOUNT_DATE < TO_DATE('" + _Dictionary["EndDate"].ToString() + "','YYYY/MM/DD HH24:MI:SS')";
}
//过滤服务区编码
if (!string.IsNullOrEmpty(_SERVERPARTCODE) && !string.IsNullOrEmpty(_SHOPCODE))
{
SqlString += " AND A.SERVERPARTCODE = '" + _SERVERPARTCODE + "' AND A.SHOPCODE = '" + _SHOPCODE + "'";
}
//查询结账数据
OracleHelper _OracleHelperEnd = new OracleHelper(_OracleEndConnStr.Split(',')[0],
_OracleEndConnStr.Split(',')[1], _OracleEndConnStr.Split(',')[2], _OracleEndConnStr.Split(',')[3]);
_DataTable = _OracleHelperEnd.ExcuteSqlGetDataSet(string.Format(
@"SELECT
A.SERVERPARTCODE,A.SERVERPART_NAME,A.SHOPCODE,A.SHOPNAME,
A.MACHINECODE,A.ENDACCOUNT_STARTDATE,A.ENDACCOUNT_DATE,A.ENDPERSONCODE,
A.WORKER_NAME,A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT,A.TOTALOFFAMOUNT,
A.CASH,A.CREDITCARD,A.TICKETBILL AS WECHATPAY,A.OTHERPAY AS ALIPAY,
(A.COSTBILL + A.VIPPERSON) AS OTHERPAY,A.CASHPAY,A.DIFFERENT_PRICE
FROM
HIGHWAY_SELLDATA.T_ENDACCOUNT A
WHERE VALID = 1 {0}
ORDER BY A.ENDACCOUNT_DATE,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE", SqlString)).Tables[0];
if (_DataTable.Rows.Count > 0)
{
var EndDateList = _DataTable.AsEnumerable().Select(p => new
{
ServerPartCode = p.Field<string>("SERVERPARTCODE"),
ServerPartName = p.Field<string>("SERVERPART_NAME"),
ShopCode = p.Field<string>("SHOPCODE"),
ShopName = p.Field<string>("SHOPNAME"),
MachineCode = p.Field<string>("MACHINECODE"),
SellWorkerCode = p.Field<string>("ENDPERSONCODE"),
SellWorerName = p.Field<string>("WORKER_NAME"),
TicketCount = p.Field<decimal?>("TICKETCOUNT"),
TotalCount = p.Field<decimal?>("TOTALCOUNT"),
TotalAmount = p.Field<decimal?>("TOTALSELLAMOUNT"),
TotalDiscount = p.Field<decimal?>("TOTALOFFAMOUNT"),
CashPay = p.Field<decimal?>("CASH"),
BankPay = p.Field<decimal?>("CREDITCARD"),
WeChatPay = p.Field<decimal?>("WECHATPAY"),
AliPay = p.Field<decimal?>("ALIPAY"),
OtherPay = p.Field<decimal?>("OTHERPAY"),
CashPayment = p.Field<decimal?>("CASHPAY"),
DifferentAmount = p.Field<decimal?>("DIFFERENT_PRICE"),
StartDate = p.Field<DateTime?>("ENDACCOUNT_STARTDATE"),
EndDate = p.Field<DateTime?>("ENDACCOUNT_DATE")
}).ToList();
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = _DataTable.Rows.Count;
info["Data"] = JsonHelper.ListToJObject(EndDateList)["List"];
}
else
{
info["Error"] = "100";
info["Msg"] = "查询成功";
info["TotalCount"] = 0;
info["Data"] = "[]";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
info["Error"] = "999";
info["Msg"] = "查询失败:" + ex.Message;
//return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
return info.ToString();
}
#endregion
#region ->
public void UpLoadSaleCloud(string code, string jsonString)
{
Hashtable hashtable = new Hashtable
{
{ "code", code },
{ "jsonString", jsonString }
};
SoapWSHelper.QuerySoapWebServiceString(_ColudUrl, "AddTransfer_selldata", hashtable);
}
#endregion
#region ->
public void SellDataSplit(List<HIGHWAY.TRANSFER_SELLDATA> _Data, string[] codes)
{
//单品集合拆解到流水
if (!string.IsNullOrEmpty(_OracleConnStr))
{
string _SERVERPARTCODE = codes[0];
string _SHOPCODE = codes[1];
string _SERVERPART_NAME = "";
string _SHOPNAME = "";
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
List<string> SqlList = new List<string>();
try
{
//获取服务区名称
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPART_NAME FROM HIGHWAY_EXCHANGE.T_SERVERPART WHERE SERVERPART_CODE = '" + _SERVERPARTCODE + "'").Tables[0];
if (_DataTable.Rows.Count > 0)
{
_SERVERPART_NAME = _DataTable.Rows[0][0].ToString();
}
//获取门店名称
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(
"SELECT SHOPNAME FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" +
_SERVERPARTCODE + "' AND SHOPCODE = '" + _SHOPCODE + "'").Tables[0];
if (_DataTable.Rows.Count > 0)
{
_SHOPNAME = _DataTable.Rows[0][0].ToString();
}
//查询收银人员信息
_DataTable = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT SELLWORKERCODE,SELLWORKERNAME FROM HIGHWAY_EXCHANGE.T_SELLWORKER
WHERE SERVERPARTCODE = '" + _SERVERPARTCODE + "' AND SHOPCODE = '" + _SHOPCODE + "'").Tables[0];
//开始拆解流水集合数据
foreach (HIGHWAY.TRANSFER_SELLDATA _TRANSFER_SELLDATA in _Data)
{
//定义销售流水编码(门店唯一单号)
string _SellMasterCode = _SERVERPARTCODE + _SHOPCODE + _TRANSFER_SELLDATA.MACHINECODE +
_TRANSFER_SELLDATA.WORKERCODE + _TRANSFER_SELLDATA.SELLDATA_DATE.Value.ToString("yyyyMMddHHmmss");
string _SellWorkName = "";
//查询收银人员信息
DataRow[] _DataRow = _DataTable.Select("SELLWORKERCODE = '" + _TRANSFER_SELLDATA.WORKERCODE + "'");
if (_DataRow.Length > 0)
{
_SellWorkName = _DataRow[0]["SELLWORKERNAME"].ToString();
}
//生成插入销售流水主表sql语句
string _InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLMASTER (
SELLMASTER_ID,SELLMASTER_CODE,SERVERPARTCODE,SERVERPART_NAME,SHOPCODE,SHOPNAME,MACHINECODE,
SELLWORKER_CODE,SELLWORKER_NAME,SELLMASTER_DATE,SELLMASTER_COUNT,SELLMASTER_OFFPRICE,
SELLMASTER_AMOUNT,CASHPAY,TRANSFER_STATE) VALUES(1,'{0}','{1}','{2}','{3}','{4}','{5}','{6}',
'{7}',TO_DATE('{8}','YYYY/MM/DD HH24:MI:SS'),{9},{10},{11},{11},0)", _SellMasterCode,
_SERVERPARTCODE, _SERVERPART_NAME, _SHOPCODE, _SHOPNAME, _TRANSFER_SELLDATA.MACHINECODE,
_TRANSFER_SELLDATA.WORKERCODE, _SellWorkName, _TRANSFER_SELLDATA.SELLDATA_DATE,
_TRANSFER_SELLDATA.SELLCOUNT, _TRANSFER_SELLDATA.OFFPRICE, _TRANSFER_SELLDATA.FACTAMOUNT);
SqlList.Add(_InsertSql);
int _LINENUM = 1;
//如果第一组流水有数据,则进行拆分。数据格式:商品名^数量^总价格,商品名^数量^总价格
if (!string.IsNullOrEmpty(_TRANSFER_SELLDATA.TRANSFER_FIRSTDATAS))
{
//按照,进行拆分数据,拆分出销售数据
string[] _str = _TRANSFER_SELLDATA.TRANSFER_FIRSTDATAS.Split(",");
foreach (string _SaleDate in _str)
{
//按照^进行拆分,拆分出每个商品销售明细
string[] _temp = _SaleDate.Split('^');
if (_temp.Length > 2)
{
//生成商品明细插入语句
_InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDETAILS (
SELLDETAILS_ID,SELLMASTER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,SELLDETAILS_COUNT,
SELLDETAILS_PRICE,SELLDETAILS_AMOUNT,LINENUM,CREATE_DATE,TRANSFER_STATE)
VALUES(1,'{0}','{1}','{2}',{3},{4},{5},{6},TO_DATE('{7}','YYYY/MM/DD HH24:MI:SS'),0)",
_SellMasterCode, _temp[0].Split("_")[0], _temp[0].Split("_")[1], _temp[1],
(double.Parse(_temp[2]) / double.Parse(_temp[1])), _temp[2], _LINENUM,
_TRANSFER_SELLDATA.SELLDATA_DATE);
SqlList.Add(_InsertSql);
}
}
}
//如果第二组流水有数据,则进行拆分。数据格式:商品名^数量^总价格,商品名^数量^总价格
if (!string.IsNullOrEmpty(_TRANSFER_SELLDATA.TRANSFER_SECONDDATAS))
{
string[] _str = _TRANSFER_SELLDATA.TRANSFER_SECONDDATAS.Split(",");
foreach (string _SaleDate in _str)
{
string[] _temp = _SaleDate.Split('^');
if (_temp.Length > 2)
{
_InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDETAILS (
SELLDETAILS_ID,SELLMASTER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,SELLDETAILS_COUNT,
SELLDETAILS_PRICE,SELLDETAILS_AMOUNT,LINENUM,CREATE_DATE,TRANSFER_STATE)
VALUES(1,'{0}','{1}','{2}',{3},{4},{5},{6},TO_DATE('{7}','YYYY/MM/DD HH24:MI:SS'),0)",
_SellMasterCode, _temp[0].Split("_")[0], _temp[0].Split("_")[1], _temp[1],
(double.Parse(_temp[2]) / double.Parse(_temp[1])), _temp[2], _LINENUM,
_TRANSFER_SELLDATA.SELLDATA_DATE);
SqlList.Add(_InsertSql);
}
}
}
//如果第三组流水有数据,则进行拆分。数据格式:商品名^数量^总价格,商品名^数量^总价格
if (!string.IsNullOrEmpty(_TRANSFER_SELLDATA.TRANSFER_THIRDDATAS))
{
string[] _str = _TRANSFER_SELLDATA.TRANSFER_THIRDDATAS.Split(",");
foreach (string _SaleDate in _str)
{
string[] _temp = _SaleDate.Split('^');
if (_temp.Length > 2)
{
_InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDETAILS (
SELLDETAILS_ID,SELLMASTER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,SELLDETAILS_COUNT,
SELLDETAILS_PRICE,SELLDETAILS_AMOUNT,LINENUM,CREATE_DATE,TRANSFER_STATE)
VALUES(1,'{0}','{1}','{2}',{3},{4},{5},{6},TO_DATE('{7}','YYYY/MM/DD HH24:MI:SS'),0)",
_SellMasterCode, _temp[0].Split("_")[0], _temp[0].Split("_")[1], _temp[1],
(double.Parse(_temp[2]) / double.Parse(_temp[1])), _temp[2], _LINENUM,
_TRANSFER_SELLDATA.SELLDATA_DATE);
SqlList.Add(_InsertSql);
}
}
}
//如果第四组流水有数据,则进行拆分。数据格式:商品名^数量^总价格,商品名^数量^总价格
if (!string.IsNullOrEmpty(_TRANSFER_SELLDATA.TRANSFER_FORTHDATAS))
{
string[] _str = _TRANSFER_SELLDATA.TRANSFER_FORTHDATAS.Split(",");
foreach (string _SaleDate in _str)
{
string[] _temp = _SaleDate.Split('^');
if (_temp.Length > 2)
{
_InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDETAILS (
SELLDETAILS_ID,SELLMASTER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,SELLDETAILS_COUNT,
SELLDETAILS_PRICE,SELLDETAILS_AMOUNT,LINENUM,CREATE_DATE,TRANSFER_STATE)
VALUES(1,'{0}','{1}','{2}',{3},{4},{5},{6},TO_DATE('{7}','YYYY/MM/DD HH24:MI:SS'),0)",
_SellMasterCode, _temp[0].Split("_")[0], _temp[0].Split("_")[1], _temp[1],
(double.Parse(_temp[2]) / double.Parse(_temp[1])), _temp[2], _LINENUM,
_TRANSFER_SELLDATA.SELLDATA_DATE);
SqlList.Add(_InsertSql);
}
}
}
//如果第五组流水有数据,则进行拆分。数据格式:商品名^数量^总价格,商品名^数量^总价格
if (!string.IsNullOrEmpty(_TRANSFER_SELLDATA.TRANSFER_FIFTHDATAS))
{
string[] _str = _TRANSFER_SELLDATA.TRANSFER_FIFTHDATAS.Split(",");
foreach (string _SaleDate in _str)
{
string[] _temp = _SaleDate.Split('^');
if (_temp.Length > 2)
{
_InsertSql = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLDETAILS (
SELLDETAILS_ID,SELLMASTER_CODE,COMMODITY_BARCODE,COMMODITY_NAME,SELLDETAILS_COUNT,
SELLDETAILS_PRICE,SELLDETAILS_AMOUNT,LINENUM,CREATE_DATE,TRANSFER_STATE)
VALUES(1,'{0}','{1}','{2}',{3},{4},{5},{6},TO_DATE('{7}','YYYY/MM/DD HH24:MI:SS'),0)",
_SellMasterCode, _temp[0].Split("_")[0], _temp[0].Split("_")[1], _temp[1],
(double.Parse(_temp[2]) / double.Parse(_temp[1])), _temp[2], _LINENUM,
_TRANSFER_SELLDATA.SELLDATA_DATE);
SqlList.Add(_InsertSql);
}
}
}
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog("生成流水语句错误:" + ex.ToString());
}
try
{
_OracleHelper.ExecuteSqlTran(SqlList);
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog("执行流水拆解插入错误:" + ex.ToString());
}
}
}
#endregion
#region ->
/// <summary>
/// 打印错误日志
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public void LogWriteSendLog(string jsonString)
{
WebService.SDK.LogHelper.WriteSendLog(jsonString);
}
#endregion
#region ->
/// <summary>
/// 验证必传参数
/// </summary>
/// <param name="code"></param>
/// <param name="MD5Key"></param>
/// <param name="jsonString"></param>
/// <param name="_Dictionary"></param>
/// <returns></returns>
public string ValidateNecessaryParam(string code, string MD5Key, string jsonString, Dictionary<string, string> _Dictionary, string[] _RequiredDatas)
{
//string[] _RequiredDatas = { "sign", "Time_stamp" };
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "StartDate":
case "EndDate":
case "Category_Id":
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
//非必填项
_Dictionary.Clear();
foreach (var item in _Json)
{
_Dictionary.Add(item.Key, _Json[item.Key].ToString());
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[{}]}";
}
#region ->
/// <summary>
/// 获取商品分类
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetCategoryList(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codeArr = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codeArr == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "StartDate", "EndDate" };
string reString = ValidateNecessaryParam(code, MD5Key, jsonString, _Dictionary, _RequiredDatas);
JObject _JObject = JObject.Parse(reString);
if (_JObject["error"].ToString() != "100")
{
return reString;
}
#endregion
//获取门店信息
string _ServerpartCode = code.Substring(0, 6), _ShopCode = code.Substring(6); //服务区编码、门店编码
//GetShopInfo(_OracleHelper, codeArr, code, ref Province_Code, ref ServerPartShop_Id);
//查询商品分类列表
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OpenAPIGetCategoryList");
sb.AppendFormat("&ServerpartCode={0}", _ServerpartCode);
sb.AppendFormat("&ShopCode={0}", _ShopCode);
if (_Dictionary.ContainsKey("StartDate"))
{
sb.AppendFormat("&StartDate={0}", _Dictionary["StartDate"].ToString());
}
if (_Dictionary.ContainsKey("EndDate"))
{
sb.AppendFormat("&EndDate={0}", _Dictionary["EndDate"].ToString());
}
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["BaseUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
_JObject = JObject.Parse(reString);
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":" + _JObject["Result_Data"]["List"] + "}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取商品分类
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetCommodityList(string code, string jsonString)
{
try
{
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codeArr = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codeArr == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "StartDate", "EndDate", "Category_Id" };
string reString = ValidateNecessaryParam(code, MD5Key, jsonString, _Dictionary, _RequiredDatas);
JObject _JObject = JObject.Parse(reString);
if (_JObject["error"].ToString() != "100")
{
return reString;
}
#endregion
//获取门店信息
string _ServerpartCode = code.Substring(0, 6), _ShopCode = code.Substring(6); //服务区编码、门店编码
//查询商品分类列表
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "OpenAPIGetCommodityList");
sb.AppendFormat("&ServerpartCode={0}", _ServerpartCode);
sb.AppendFormat("&ShopCode={0}", _ShopCode);
if (_Dictionary.ContainsKey("Category_Id"))
{
sb.AppendFormat("&Category_Id={0}", _Dictionary["Category_Id"].ToString());
}
if (_Dictionary.ContainsKey("StartDate"))
{
sb.AppendFormat("&StartDate={0}", _Dictionary["StartDate"].ToString());
}
if (_Dictionary.ContainsKey("EndDate"))
{
sb.AppendFormat("&EndDate={0}", _Dictionary["EndDate"].ToString());
}
string parameters = sb.ToString();
string _BaseUrl = ConfigurationManager.AppSettings["BaseUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
_JObject = JObject.Parse(reString);
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":" + _JObject["Result_Data"]["List"] + "}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
#region -> []
#region ->
/// <summary>
/// 获取会员信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetMembershipInfoEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "time_stamp", "Membership_Card", "Membership_Name", "Membership_Mobilephone" };
//"Membership_Type", "Start_Date", "End_Date", "Membership_ID", "Membership_Company",
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Membership_Card":
case "Membership_Name":
case "Membership_Mobilephone":
EmptyCount++;
if (EmptyCount == 3)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/GetMemberInfo";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?Membership_Card={0}", _Dictionary["Membership_Card"].ToString());
sb.AppendFormat("&Membership_Phone={0}", _Dictionary["Membership_Mobilephone"].ToString());
sb.AppendFormat("&staffName={0}", "海鼎通讯接口");//海鼎通讯接口
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Company_Name"] = _JObject["Result_Data"]["Company_Name"];
info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
info["Membership_Sex"] = _JObject["Result_Data"]["Membership_Sex"];
info["Membership_Mobilephone"] = _JObject["Result_Data"]["Membership_Mobilephone"];
info["Membership_Card"] = _JObject["Result_Data"]["Membership_Card"];
info["Operate_Date"] = _JObject["Result_Data"]["Operate_Date"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取卡户信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetICCardInfoEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "time_stamp", "Membership_Card" };
//"Membership_ID", "Start_Date", "End_Date",
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Membership_Card":
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/GetMemberInfo";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?action_type={0}", "ICCardQuery");
sb.AppendFormat("&Membership_Card={0}", _Dictionary["Membership_Card"].ToString());
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
info["ICCard_Statue"] = _JObject["Result_Data"]["ICCard_Statue"];
info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
info["Operate_Date"] = _JObject["Result_Data"]["Operate_Date"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 订单支付
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderPayEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "time_stamp" , "ECode", "Membership_Card", "TicketCode", //"Membership_ID",
"MachineCode", "Recode_Type", "Recode_Amount" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "ECode": //会员电子码
case "Membership_Card": //会员实体卡号
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"支付失败JSON缺少必要支付参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"支付失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
//实付金额
if (_Json["Fact_Amount"] != null)
{
_Dictionary.Add("Fact_Amount", _Json["Fact_Amount"].ToString());
}
//抵用积分
if (_Json["Consume_Point"] != null)
{
_Dictionary.Add("Consume_Point", _Json["Consume_Point"].ToString());
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"支付失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"支付失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_SERVERPART_ID = "NULL", _SERVERPART_NAME = "",
_SERVERPARTSHOP_ID = "NULL", _SHOPNAME = "", _PROVINCE_CODE = "",
_TicketCode = _Dictionary["TicketCode"].ToString(),
_MachineCode = _Dictionary["MachineCode"].ToString(),
_ECode = _Dictionary.ContainsKey("ECode") ? _Dictionary["ECode"].ToString() : "",
_Membership_Card = _Dictionary.ContainsKey("Membership_Card") ? _Dictionary["Membership_Card"].ToString() : "",
_Recode_Type = _Dictionary["Recode_Type"].ToString(),
_Recode_Amount = _Dictionary["Recode_Amount"].ToString(),
_Recode_Date = DateTime.Now.ToString(),
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
if (!_Dictionary.TryGetValue("Fact_Amount", out string _Fact_Amount))
{
_Fact_Amount = _Recode_Amount;
}
if (!_Dictionary.TryGetValue("Consume_Point", out string _Consume_Point))
{
_Consume_Point = "0";
}
#endregion
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberECodePay";
string reString = "";
StringBuilder sb = new StringBuilder();
if (_ECode.Length == 23)
{
//新的电子码支付逻辑:包含余额支付、优惠券使用、积分积累
sb.AppendFormat("?serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&machineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&consumeAmount={0}", _Recode_Amount);
sb.AppendFormat("&ECode={0}", _ECode);
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&consumeType={0}", _Recode_Type);
sb.AppendFormat("&operaterDesc={0}", "海鼎电子码支付");
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
}
else if (!string.IsNullOrEmpty(_Membership_Card))
{
//饭卡支付(实体卡消费)
_BaseUrl += "/OpenApi/MemberCardPay?";
sb.AppendFormat("card={0}", _Membership_Card);
sb.AppendFormat("&serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&machineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&consumeAmount={0}", _Recode_Amount);
sb.AppendFormat("&operaterDesc={0}", "海鼎饭卡支付");
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
}
else
{
#region
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
//内部会员信息数据库链接
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
_PROVINCE_CODE = _SERVERPARTSHOP.Rows[0]["PROVINCE_CODE"].ToString();
_SERVERPART_ID = _SERVERPARTSHOP.Rows[0]["SERVERPART_ID"].ToString();
_SERVERPART_NAME = _SERVERPARTSHOP.Rows[0]["SERVERPART_NAME"].ToString();
_SERVERPARTSHOP_ID = _SERVERPARTSHOP.Rows[0]["SERVERPARTSHOP_ID"].ToString();
_SHOPNAME = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
sb.AppendFormat("?action_type={0}", "OrderPay");
sb.AppendFormat("&Membership_ECode={0}", _ECode);
sb.AppendFormat("&Membership_Card={0}", _Membership_Card);
sb.AppendFormat("&Fact_Amount={0}", _Fact_Amount);
sb.AppendFormat("&Consume_Point={0}", _Consume_Point);
sb.AppendFormat("&Recode_Amount={0}", _Recode_Amount);
sb.AppendFormat("&TicketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&Recode_Type={0}", _Dictionary["Recode_Type"].ToString());
sb.AppendFormat("&Province_Code={0}", _PROVINCE_CODE);
sb.AppendFormat("&Serverpart_ID={0}", _SERVERPART_ID);
sb.AppendFormat("&Serverpart_Code={0}", _ServerpartCode);
sb.AppendFormat("&Serverpart_Name={0}", _SERVERPART_NAME);
sb.AppendFormat("&ServerpartShop_ID={0}", _SERVERPARTSHOP_ID);
sb.AppendFormat("&ServerpartShop_Code={0}", _ShopCode);
sb.AppendFormat("&ServerpartShop_Name={0}", _SHOPNAME);
sb.AppendFormat("&MachineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&Recode_Date={0}", _Recode_Date);
sb.AppendFormat("&PlatformCode={0}", _PlatformCode);
sb.AppendFormat("&RecordPoint={0}", 0); //海鼎饭卡支付不做积分
string parameters = sb.ToString();
_BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
#endregion
}
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
HIGHWAY.RECHARGERECORD _RECHARGERECORD = new HIGHWAY.RECHARGERECORD();
_RECHARGERECORD.Serverpart_Name = _SERVERPART_NAME;
_RECHARGERECORD.ShopName = _SHOPNAME;
_RECHARGERECORD.MachineCode = _Dictionary["MachineCode"].ToString();
_RECHARGERECORD.TicketCode = _Dictionary["TicketCode"].ToString();
_RECHARGERECORD.PlatformCode = _PlatformCode;
_RECHARGERECORD.Recode_Type = int.Parse(_Dictionary["Recode_Type"].ToString());
_RECHARGERECORD.Recode_Amount = double.Parse(_Recode_Amount).Round(2);
_RECHARGERECORD.Fact_Amount = double.Parse(_Fact_Amount).Round(2);
_RECHARGERECORD.Coupon_Amount = double.Parse(_JObject["Result_Data"]["couponAmount"].ToString()).Round(2);
_RECHARGERECORD.Consume_Point = double.Parse(_Consume_Point).Round(2);
_RECHARGERECORD.Current_Point = double.Parse(_JObject["Result_Data"]["currentPoint"].ToString()).Round(2);
_RECHARGERECORD.Total_Point = double.Parse(_JObject["Result_Data"]["memberPoint"].ToString()).Round(2);
//double.Parse(_Consume_Point).Round(2);
//_RECHARGERECORD.Account_Balance = decimal.Parse(_ACCOUNT_BALANCE) - decimal.Parse(_Recode_Amount);
_RECHARGERECORD.Pay_State = "Success";
_RECHARGERECORD.Recode_Date = DateTime.Parse(_Recode_Date);
return "{\"error\": 100 ,\"msg\": \"支付成功!\",\"rows\":[" +
JsonHelper.ObjectToJson(_RECHARGERECORD) + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"支付失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 订单查询
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderQueryEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "TicketCode", "PlatformCode", "Start_Date", "End_Date", "time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0, TimeCount = 0;
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "TicketCode":
case "PlatformCode":
EmptyCount++;
_Dictionary.Add(_RequiredData, "");
break;
case "Start_Date":
case "End_Date":
TimeCount++;
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
switch (_RequiredData)
{
case "Start_Date":
case "End_Date":
try
{
DateTime.ParseExact(_Json[_RequiredData].ToString(), "yyyyMMddHHmmss",
System.Globalization.CultureInfo.InvariantCulture).ToString();
}
catch
{
return "{\"error\": 200 ,\"msg\": \"查询失败:时间格式不正确!\",\"rows\":[{}]}";
}
break;
}
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (EmptyCount == 2 && TimeCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string Serverpart_Code = codes[0], ShopCode = codes[1];
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/ConsumptionList";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?startDate={0}", _Dictionary["Start_Date"].ToString());
sb.AppendFormat("&platformCode={0}", _Dictionary["PlatformCode"].ToString());
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&endDate={0}", _Dictionary["End_Date"].ToString());
sb.AppendFormat("&serverPartCode={0}", Serverpart_Code);
sb.AppendFormat("&serverPartShopCode={0}", ShopCode);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" +
_JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取会员、卡户信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderCancelEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "TicketCode", "MachineCode", "time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"取消失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"取消失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"取消失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string Serverpart_Code = codes[0], ShopCode = codes[1];
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/CancelPay";
//string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&machineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&serverPartCode={0}", Serverpart_Code);
sb.AppendFormat("&serverPartShopCode={0}", ShopCode);
sb.AppendFormat("&operateDesc={0}", "海鼎撤销交易");
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"取消成功!\",\"rows\":[" +
_JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"取消失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region -> 退
/// <summary>
/// 获取会员、卡户信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string OrderRefundEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "TicketCode", "PlatformCode", "time_stamp", "ECode", "Refund_Amount", "MachineCode", "Recode_Type" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"退款失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"退款失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"退款失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_TicketCode = _Dictionary["TicketCode"].ToString(),
_MachineCode = _Dictionary["MachineCode"].ToString(),
_ECode = _Dictionary.ContainsKey("ECode") ? _Dictionary["ECode"].ToString() : "",
_Membership_Card = _Dictionary.ContainsKey("Membership_Card") ? _Dictionary["Membership_Card"].ToString() : "",
_Recode_Type = _Dictionary["Recode_Type"].ToString(),
_Recode_Amount = _Dictionary["Refund_Amount"].ToString(),
_Recode_Date = DateTime.Now.ToString(),
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
if (!_Dictionary.TryGetValue("Fact_Amount", out string _Fact_Amount))
{
_Fact_Amount = _Recode_Amount;
}
if (!_Dictionary.TryGetValue("Consume_Point", out string _Consume_Point))
{
_Consume_Point = "0";
}
#endregion
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberECodePay";
StringBuilder sb = new StringBuilder();
//部分退款:直接退款接口做负数处理
sb.AppendFormat("?serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&machineCode={0}", _Dictionary["MachineCode"].ToString());
sb.AppendFormat("&consumeAmount={0}", -_Recode_Amount.TryParseToDouble());
sb.AppendFormat("&ECode={0}", _ECode);
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&recodeType={0}", "5000");
sb.AppendFormat("&operaterDesc={0}", "海鼎部分退款");
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"退款成功!\",\"rows\":[" +
_JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() +
" ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"退款失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
#region -> []
#region ->
/// <summary>
/// 获取会员信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetWeChatMembershipInfo(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "WeChatPhone", "WeChatUnionID", "Time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "WeChatPhone":
case "WeChatUnionID":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
//查询会员信息
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/GetMemberInfo";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?Membership_Phone={0}", _Dictionary["WeChatPhone"].ToString());
sb.AppendFormat("&staffName={0}", "那美通讯接口");//那美通讯接口
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_Type"] = _JObject["Result_Data"]["Membership_Type"];
info["Membership_Level"] = _JObject["Result_Data"]["Membership_Level"];
info["Membership_Code"] = _JObject["Result_Data"]["Membership_Card"];
info["Membership_Name"] = _JObject["Result_Data"]["Membership_Name"];
info["Membership_Sex"] = _JObject["Result_Data"]["Membership_Sex"];
info["Membership_Birthday"] = _JObject["Result_Data"]["Membership_Birthday"];
info["Membership_MobilePhone"] = _JObject["Result_Data"]["Membership_Mobilephone"];
info["Membership_Address"] = _JObject["Result_Data"]["Membership_Address"];
info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": 101 ,\"msg\": \"查询成功!无会员信息!\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 获取会员收货地址
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetReceiveAddress(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "WeChatPhone", "WeChatUnionID", "Time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "WeChatPhone":
case "WeChatUnionID":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
//查询会员信息
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberAddressList";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?Membership_Phone={0}", _Dictionary["WeChatPhone"].ToString());
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + _JObject["Result_Data"] + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() + " ,\"msg\": \"" + _JObject["ResultDesc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 同步会员收货地址
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string UploadReceiveAddress(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID",
"ReceiveAddressID","ReceiveProvince", "ReceiveCity","ReceiveCounty",
"ReceiveAddress", "ReceiveLinker_Name", "ReceiveLinker_Sex", "Linker_MobilePhone", "IsDefault", "TargetType" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "ReceiveAddressID":
_Dictionary.Add(_RequiredData, "");
break;
case "WeChatPhone":
case "WeChatUnionID":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"同步失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"同步失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
//记录会员地址
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/SaveAddressList";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?Membership_Phone={0}", _Dictionary["WeChatPhone"].ToString());
sb.AppendFormat("&ReceiveProvince={0}", _Dictionary["ReceiveProvince"].ToString());
sb.AppendFormat("&ReceiveCity={0}", _Dictionary["ReceiveCity"].ToString());
sb.AppendFormat("&ReceiveCounty={0}", _Dictionary["ReceiveCounty"].ToString());
sb.AppendFormat("&ReceiveAddress={0}", _Dictionary["ReceiveAddress"].ToString());
sb.AppendFormat("&ReceiveLinker_Name={0}", _Dictionary["ReceiveLinker_Name"].ToString());
sb.AppendFormat("&ReceiveLinker_Sex={0}", _Dictionary["ReceiveLinker_Sex"].ToString());
sb.AppendFormat("&Linker_MobilePhone={0}", _Dictionary["Linker_MobilePhone"].ToString());
sb.AppendFormat("&IsDefault={0}", _Dictionary["IsDefault"].ToString());
sb.AppendFormat("&TargetType={0}", _Dictionary["TargetType"].ToString());
sb.AppendFormat("&ReceiveAddressID={0}", _Dictionary["ReceiveAddressID"].ToString());
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["ReceiveAddressID"] = _JObject["Result_Data"]["ReceiveAddressID"]; //收货地址内码
info["ReceiveProvince"] = _Dictionary["ReceiveProvince"]; //收货市区
info["ReceiveCity"] = _Dictionary["ReceiveCity"]; //收货市区
info["ReceiveCounty"] = _Dictionary["ReceiveCounty"]; //收货市区
info["ReceiveAddress"] = _Dictionary["ReceiveAddress"]; //收货详细地址
info["ReceiveLinker_Name"] = _Dictionary["ReceiveLinker_Name"]; //收货人
info["ReceiveLinker_Sex"] = _Dictionary["ReceiveLinker_Sex"]; //收货人性别
info["Linker_MobilePhone"] = _Dictionary["Linker_MobilePhone"]; //手机号码
info["IsDefault"] = _Dictionary["IsDefault"]; //是否默认地址
info["TargetType"] = _Dictionary["TargetType"]; //地址标签
return "{\"error\": 100 ,\"msg\": \"同步成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["ResultCode"].ToString() + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"同步失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 记录消费信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string RecordConsumption(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string _Recode_Type = "", _Recode_Desc = "";
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID", "Recode_Type", "Membership_Name",
"TicketCode", "Recode_Amount", "Consume_Point", "Fact_Amount", "Recode_Date", "Recode_Desc", "CommodityInfo"};
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
if (_Recode_Type != "9000" && _RequiredData == "Recode_Desc")
{
continue;
}
else
{
switch (_RequiredData)
{
case "Membership_Name":
case "CommodityInfo":
break;
case "Consume_Point":
//提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
if (code.StartsWith("330005") || code == "888888012002")
{
_Dictionary.Add("Consume_Point", "0");
}
break;
case "WeChatPhone":
case "WeChatUnionID":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
//提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
if (code.StartsWith("330005") || code == "888888012002")
{
_Dictionary.Add(_RequiredData, "");
}
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
}
else if (_RequiredData.ToLower() != "sign")
{
if (_RequiredData == "Recode_Type")
{
_Recode_Type = _Json[_RequiredData].ToString();
}
else if (_RequiredData == "Recode_Desc")
{
_Recode_Desc = _Json[_RequiredData].ToString();
}
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
//2020/7/27 朱梓毅增加处理逻辑
//交易金额、实付金额签名保留两位小数
_Dictionary.Remove("Fact_Amount");
_Dictionary.Remove("Recode_Amount");
_Dictionary.Add("Fact_Amount", ((decimal)_Json["Fact_Amount"]).ToString("F2"));
_Dictionary.Add("Recode_Amount", ((decimal)_Json["Recode_Amount"]).ToString("F2"));
sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
//非必填项
_Dictionary.Clear();
foreach (var item in _Json)
{
_Dictionary.Add(item.Key, _Json[item.Key].ToString());
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1];
//业主单位
int OwnerUnitId = 13;
try
{
OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
}
catch { }
//消费类型转译
switch (_Recode_Type)
{
//余额支付
case "2000":
_Recode_Type = "3000";
break;
//积分兑换
case "3000":
_Recode_Type = "3050";
break;
//微信支付
case "4000":
_Recode_Type = "2000";
break;
}
#endregion
#region
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberMobilePay";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?MembershipPhone={0}", _Dictionary["WeChatPhone"].ToString());
sb.AppendFormat("&recodeType={0}", _Recode_Type);
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&consumeAmount={0}", _Dictionary["Recode_Amount"].ToString());
if (_Dictionary.ContainsKey("Consume_Point"))
{
sb.AppendFormat("&consumePoint={0}", _Dictionary["Consume_Point"].ToString());
}
sb.AppendFormat("&factAmount={0}", _Dictionary["Fact_Amount"].ToString());
sb.AppendFormat("&consumeDate={0}", _Dictionary["Recode_Date"].ToString());
if (_Dictionary.ContainsKey("Recode_Desc"))//组合支付的备注
{
sb.AppendFormat("&Recode_Desc={0}", _Dictionary["Recode_Desc"].ToString());
}
sb.AppendFormat("&consumptionDesc={0}", "驿网云仓消费");
sb.AppendFormat("&consumeType={0}", 3000);//商城订单
sb.AppendFormat("&serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&OwnerUnitId={0}", OwnerUnitId);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["PlatformCode"] = _JObject["Result_Data"]["platformCode"].ToString();
info["Recode_Type"] = _Dictionary["Recode_Type"].ToString();
info["Recode_Amount"] = _Dictionary["Recode_Amount"];
info["Fact_Amount"] = _Dictionary["Fact_Amount"];
if (_Dictionary.ContainsKey("Consume_Point"))
{
info["Consume_Point"] = _Dictionary["Consume_Point"];
}
info["Recode_Date"] = _Dictionary["Recode_Date"];
info["Pay_State"] = "Success";
info["Recode_Desc"] = _Recode_Desc;
return "{\"error\": 100 ,\"msg\": \"记录成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
switch (_Result_Code)
{
case "205":
_Result_Code = "203";
break;
case "301":
_Result_Code = "102";
break;
}
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"记录失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 记录消费信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string SearchConsumptionRecord(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string _Recode_Type = "";
string[] _RequiredDatas = { "sign", "Time_stamp", "TicketCode" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
//非必填项
_Dictionary.Clear();
foreach (var item in _Json)
{
_Dictionary.Add(item.Key, _Json[item.Key].ToString());
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
//参数定义
string _ServerpartCode = codes[0], _ShopCode = codes[1];
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"] + "OpenApi/ConsumptionList";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
if (_JObject["Result_Data"]["TotalCount"].TryParseToInt() > 0)
{
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["PlatformCode"] = _JObject["Result_Data"]["List"][0]["PlatformCode"];
//消费类型转译
switch (_JObject["Result_Data"]["List"][0]["Recode_Type"].TryParseToString())
{
//余额支付
case "3000":
_Recode_Type = "余额支付";
break;
//积分兑换
case "3050":
_Recode_Type = "积分兑换";
break;
//微信支付
case "2000":
_Recode_Type = "微信支付";
break;
}
info["Recode_Type"] = _Recode_Type;
info["Recode_Amount"] = _JObject["Result_Data"]["List"][0]["Recode_Amount"];
info["Recode_Date"] = _JObject["Result_Data"]["List"][0]["Recode_Date"].TryParseToString();
info["Pay_State"] = _JObject["Result_Data"]["List"][0]["Pay_State"].TryParseToString();
info["Recode_Desc"] = _JObject["Result_Data"]["List"][0]["Recode_Desc"].TryParseToString();
}
else
{
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["PlatformCode"] = "";
info["Recode_Type"] = "";
info["Recode_Amount"] = null;
info["Recode_Date"] = "";
info["Pay_State"] = "NotFund";
info["Recode_Desc"] = "";
}
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"] + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"记录失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 记录消费信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string RevokeConsumptionEx(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "WeChatUnionID", "TicketCode" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "WeChatPhone":
case "WeChatUnionID":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
//提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
if (code.StartsWith("330005") || code == "888888012002")
{
_Dictionary.Add(_RequiredData, "");
}
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"撤销失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"撤销失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string _ServerpartCode = codes[0], _ShopCode = codes[1];
//撤销会员消费记录
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/CancelPay";
//string _BaseUrl = ConfigurationManager.AppSettings["MemberUrl"];
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&operateDesc={0}", "那美撤销交易");
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["PlatformCode"] = _JObject["Result_Data"]["platformCode"] == null ? "" : _JObject["Result_Data"]["platformCode"].ToString();
info["Pay_State"] = "Revoke";
return "{\"error\": 100 ,\"msg\": \"撤销成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": " + _JObject["Result_Code"].ToString() + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"撤销失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region -> 退
/// <summary>
/// 订单部分退款
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string RevokePartConsumption(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string _Recode_Type = "", _Recode_Desc = "";
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone",
"TicketCode", "Recode_Amount", "Consume_Point", "Refund_Amount", "Recode_Date", "Recode_Desc"};
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "Consume_Point":
//提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
if (code.StartsWith("330005") || code == "888888012002")
{
_Dictionary.Add("Consume_Point", "0");
}
break;
case "WeChatPhone":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
//提供给娜美的接口,空值也参与签名,但正常情况下不参与签名
if (code.StartsWith("330005") || code == "888888012002")
{
_Dictionary.Add(_RequiredData, "");
}
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
if (_RequiredData == "Recode_Type")
{
_Recode_Type = _Json[_RequiredData].ToString();
}
else if (_RequiredData == "Recode_Desc")
{
_Recode_Desc = _Json[_RequiredData].ToString();
}
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
//2020/7/27 朱梓毅增加处理逻辑
//交易金额、实付金额签名保留两位小数
_Dictionary.Remove("Refund_Amount");
_Dictionary.Remove("Recode_Amount");
_Dictionary.Add("Refund_Amount", ((decimal)_Json["Fact_Amount"]).ToString("F2"));
_Dictionary.Add("Recode_Amount", ((decimal)_Json["Recode_Amount"]).ToString("F2"));
sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
//非必填项
_Dictionary.Clear();
foreach (var item in _Json)
{
_Dictionary.Add(item.Key, _Json[item.Key].ToString());
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
//业主单位
int OwnerUnitId = 13;
try
{
OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
}
catch { }
#endregion
#region
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberMobilePay";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?Membership_Phone={0}", _Dictionary["WeChatPhone"].ToString());
sb.AppendFormat("&recodeType={0}", 5000);
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"].ToString());
sb.AppendFormat("&consumeAmount={0}", _Dictionary["Recode_Amount"].ToString());
if (_Dictionary.ContainsKey("Consume_Point"))
{
sb.AppendFormat("&consumePoint={0}", _Dictionary["Consume_Point"].ToString());
}
sb.AppendFormat("&factAmount={0}", _Dictionary["Fact_Amount"].ToString());
sb.AppendFormat("&consumeDate={0}", _Dictionary["Recode_Date"].ToString());
if (_Dictionary.ContainsKey("Recode_Desc"))
{
sb.AppendFormat("&Recode_Desc={0}", _Dictionary["Recode_Desc"].ToString());
}
sb.AppendFormat("&consumptionDesc={0}", "那美部分退款");
sb.AppendFormat("&consumeType={0}", 3000);//商城订单
sb.AppendFormat("&serverPartCode={0}", _ServerpartCode);
sb.AppendFormat("&serverPartShopCode={0}", _ShopCode);
sb.AppendFormat("&OwnerUnitId={0}", OwnerUnitId);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["PlatformCode"] = _PlatformCode;
info["Recode_Type"] = _Dictionary["Recode_Type"].ToString();
info["Recode_Amount"] = _Dictionary["Recode_Amount"];
info["Fact_Amount"] = _Dictionary["Fact_Amount"];
if (_Dictionary.ContainsKey("Consume_Point"))
{
info["Consume_Point"] = _Dictionary["Consume_Point"];
}
info["Recode_Date"] = _Dictionary["Recode_Date"];
info["Pay_State"] = "Success";
info["Recode_Desc"] = _Recode_Desc;
return "{\"error\": 100 ,\"msg\": \"退款成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
switch (_Result_Code)
{
case "205":
_Result_Code = "203";
break;
case "301":
_Result_Code = "102";
break;
}
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"退款失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 同步会员
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string SysncMember(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "Membership_Name", "Membership_Sex", "Membership_Point" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
//业主单位
int OwnerUnitId = 13;
try
{
OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
}
catch { }
#endregion
#region
//根据授权码获取接口来源
string staffName = "那美通讯接口";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
staffName = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/SysncMember";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?MembershipPhone={0}", _Dictionary["WeChatPhone"]);
sb.AppendFormat("&MembershipName={0}", _Dictionary["Membership_Name"]);
sb.AppendFormat("&membershipSex={0}", _Dictionary["Membership_Sex"]);
sb.AppendFormat("&membershipPoint={0}", _Dictionary["Membership_Point"]);
sb.AppendFormat("&staffName={0}", staffName);
sb.AppendFormat("&OwnerUnitId={0}", OwnerUnitId);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_Name"] = _Dictionary["Membership_Name"].ToString();
info["Membership_MobilePhone"] = _Dictionary["WeChatPhone"].ToString();
info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
return "{\"error\": 100 ,\"msg\": \"新增成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"新增失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 同步会员积分
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string SysncMemberPoint(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "ChangePoint", "ChangePointDesc" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
//业主单位
int OwnerUnitId = 13;
try
{
OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
}
catch { }
#endregion
#region
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/SysncMemberPoint";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?MembershipPhone={0}", _Dictionary["WeChatPhone"]);
sb.AppendFormat("&ChangePointType={0}", "7000");//那美营销
sb.AppendFormat("&ChangePointDesc={0}", _Dictionary["ChangePointDesc"]);//改变积分类型描述
sb.AppendFormat("&ChangePoint={0}", _Dictionary["ChangePoint"]);
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
WebService.SDK.LogHelper.WriteSendLog("SysncMemberPoint" + RequestUrl + "||" + reString);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["ChangePoint"] = _Dictionary["ChangePoint"].ToString();
info["Membership_Point"] = _JObject["Result_Data"]["Membership_Point"];
return "{\"error\": 100 ,\"msg\": \"同步积分成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"同步积分失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 会员充值
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string MemberRecharge(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "WeChatPhone", "TicketCode", "RechargeAmount" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
//从Redis中获取充值信息
string key = code;
Model.RechargeInfoModel rechargeInfoModel = RedisHelp.Redis.HashGet<Model.RechargeInfoModel>(6, code, _Dictionary["TicketCode"]);
if (rechargeInfoModel == null)
{
rechargeInfoModel = new Model.RechargeInfoModel();
//写入Redis的db6数据库
rechargeInfoModel.WeChatPhone = _Dictionary["WeChatPhone"];
rechargeInfoModel.RechargeAmount = _Dictionary["RechargeAmount"].TryParseToDecimal();
//写入Redis的db5数据库
RedisHelp.Redis.HashSet(6, code, _Dictionary["TicketCode"], rechargeInfoModel);
}
else
{
return "{\"error\": 102 ,\"msg\": \"充值失败:充值订单号重复\",\"rows\":[{}]}";
}
#endregion
#region
//业主单位
int OwnerUnitId = 13;
try
{
OwnerUnitId = Convert.ToInt32(ConfigurationManager.AppSettings["OwnerUnitId"]);
}
catch { }
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
#endregion
#region
//根据授权码获取接口来源
string RechargeSource = "那美充值";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
RechargeSource = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/MemberRecharge";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("MembershipPhone={0}", _Dictionary["WeChatPhone"]);
sb.AppendFormat("&rechargeDesc={0}", RechargeSource); //充值来源
sb.AppendFormat("&ticketCode={0}", _Dictionary["TicketCode"]); //充值订单号
sb.AppendFormat("&rechargeAmount={0}", _Dictionary["RechargeAmount"]); //改变积分类型描述
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + "?" + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_MobilePhone"] = _Dictionary["WeChatPhone"].ToString();
info["TicketCode"] = _Dictionary["TicketCode"].ToString();
info["RechargeAmount"] = _Dictionary["RechargeAmount"].ToString();
info["Account_Balance"] = _JObject["Result_Data"]["Account_Balance"];
return "{\"error\": 100 ,\"msg\": \"会员充值成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"会员充值失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 校验授权码
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString">请求的json串</param>
/// <param name="errMsg">返回结果</param>
/// <param name="MD5Key">MD5Key</param>
/// <returns>返回授权码</returns>
public string[] CheckCodes(string code, string jsonString, ref string errMsg, ref string MD5Key)
{
string[] codes = null;
//string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
////内部会员信息数据库链接
//OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
// _OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
//授权码验证数据库链接
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
WebService.SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
errMsg = "{\"error\": 201 ,\"msg\": \"记录失败:授权码错误\",\"rows\":[{}]}";
}
MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
codes = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codes == null)
{
WebService.SDK.LogHelper.WriteSendLog(code);
errMsg = "{\"error\": 201 ,\"msg\": \"记录失败:授权码错误\",\"rows\":[{}]}";
}
return codes;
}
#endregion
#region ->
/// <summary>
/// 获取会员信息
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string GetWeChatMembershipEcode(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
string[] _RequiredDatas = { "sign", "WeChatPhone", "Time_stamp" };
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
int EmptyCount = 0; //非必填项未传参数量
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
switch (_RequiredData)
{
case "WeChatPhone":
EmptyCount++;
if (EmptyCount == 2)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要查询参数\",\"rows\":[{}]}";
}
_Dictionary.Add(_RequiredData, "");
break;
default:
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
if (_Json["sign"].ToString() != SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key))
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
//查询会员信息
string _BaseUrl = ConfigurationManager.AppSettings["ApiUrl"];
_BaseUrl += "OpenApi/GetMemberECode";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("?MembershipPhone={0}", _Dictionary["WeChatPhone"].ToString());
string parameters = sb.ToString();
string RequestUrl = _BaseUrl + parameters;
string format = "application/json;charset=UTF-8";
string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
info["Membership_ECode"] = _JObject["Result_Data"]["Membership_ECode"];
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":[" + info + "]}";
default:
return "{\"error\": 101 ,\"msg\": \"查询成功!无会员信息!\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
#region -> []
#region ->
/// <summary>
/// 添加加油站工班销售汇总报表
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string addWorkclasssummary(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
// string[] _RequiredDatas = { "sign", "Time_stamp", "GasStationNum", "GasStationName", "WorkStarTime", "WorkEndTime",
//"WorkType","CashierWorkNum","CashierWorkName","GasVolume","TotalTradeNum","GasAmount","NoGasAmount","TotalAmount"};//验证参数是否必传
string[] _RequiredDatas = { "sign", "Time_stamp", "GASSTATIONNUM", "GASSTATIONNAME", "WORKSTARTIME", "WORKENDTIME",
"WORKTYPE","CASHIERWORKNUM","CASHIERWORKNAME","GASVOLUME","TOTALTRADENUM","GASAMOUNT","NOGASAMOUNT","TOTALAMOUNT"};//验证参数是否必传
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
#endregion
#region
//根据授权码获取接口来源
string staffName = "油品接口";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
staffName = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["MobileServiceUrl"];
//StringBuilder sb = new StringBuilder();
//sb.AppendFormat("?action_type={0}", "addWorkclasssummary");
//sb.AppendFormat("&GasStationNum={0}", _Dictionary["GASSTATIONNUM"]);
//sb.AppendFormat("&GasStationName={0}", _Dictionary["GASSTATIONNAME"]);
//sb.AppendFormat("&WorkStarTime={0}", _Dictionary["WORKSTARTIME"]);
//sb.AppendFormat("&WorkEndTime={0}", _Dictionary["WORKENDTIME"]);
//sb.AppendFormat("&WorkType={0}", _Dictionary["WORKTYPE"]);
//sb.AppendFormat("&CashierWorkNum={0}", _Dictionary["CASHIERWORKNUM"]);
//sb.AppendFormat("&CashierWorkName={0}", _Dictionary["CASHIERWORKNAME"]);
//sb.AppendFormat("&GasVolume={0}", _Dictionary["GASVOLUME"]);
//sb.AppendFormat("&TotalTradeNum={0}", _Dictionary["TOTALTRADENUM"]);
//sb.AppendFormat("&GasAmount={0}", _Dictionary["GASAMOUNT"]);
//sb.AppendFormat("&NoGasAmount={0}", _Dictionary["NOGASAMOUNT"]);
//sb.AppendFormat("&TotalAmount={0}", _Dictionary["TOTALAMOUNT"]);
//sb.AppendFormat("&staffName={0}", staffName);
//string parameters = sb.ToString();
//string RequestUrl = _BaseUrl + parameters;
//string format = "application/json;charset=UTF-8";
//string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("action_type", "addWorkclasssummary");
parameters.Add("GasStationNum", _Dictionary["GASSTATIONNUM"]);
parameters.Add("GasStationName", HttpUtility.UrlEncode(_Dictionary["GASSTATIONNAME"]));
parameters.Add("WorkStarTime", HttpUtility.UrlEncode(_Dictionary["WORKSTARTIME"]));
parameters.Add("WorkEndTime", HttpUtility.UrlEncode(_Dictionary["WORKENDTIME"]));
parameters.Add("WorkType", HttpUtility.UrlEncode(_Dictionary["WORKTYPE"]));
parameters.Add("CashierWorkNum", _Dictionary["CASHIERWORKNUM"]);
parameters.Add("CashierWorkName", HttpUtility.UrlEncode(_Dictionary["CASHIERWORKNAME"]));
parameters.Add("GasVolume", _Dictionary["GASVOLUME"]);
parameters.Add("TotalTradeNum", _Dictionary["TOTALTRADENUM"]);
parameters.Add("GasAmount", _Dictionary["GASAMOUNT"]);
parameters.Add("NoGasAmount", _Dictionary["NOGASAMOUNT"]);
parameters.Add("TotalAmount", _Dictionary["TOTALAMOUNT"]);
parameters.Add("staffName", staffName);
parameters.Add("ServerpartCode", _ServerpartCode);
parameters.Add("ShopCode", _ShopCode);
string reString = HZQR.Common.HttpUtil.HttpUrlPost(_BaseUrl, parameters);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"新增成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"新增失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加加油站油品日结销售汇总
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string addDailysellsummary(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
// string[] _RequiredDatas = { "sign", "Time_stamp","GasStationNum", "GasStationName", "DailySettleDate", "GasTypeAndName",
//"TotalSellGasVolume","TotalSellAmount","ActuallyInComeAmount","DiscountAmount","CashPayAmount",
// "WechatPayAmount","AlipayAmount","UnionPayAmount"};//验证参数是否必传
string[] _RequiredDatas = { "sign", "Time_stamp",
"GASSTATIONNUM", "GASSTATIONNAME", "DAILYSETTLEDATE", "GASTYPEANDNAME",
"TOTALSELLGASVOLUME","TOTALSELLAMOUNT","ACTUALLYINCOMEAMOUNT","DISCOUNTAMOUNT",
"CASHPAYAMOUNT","WECHATPAYAMOUNT","ALIPAYAMOUNT","UNIONPAYAMOUNT"};//验证参数是否必传
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
#endregion
#region
//根据授权码获取接口来源
string staffName = "油品接口";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
staffName = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["MobileServiceUrl"];
//StringBuilder sb = new StringBuilder();
//sb.AppendFormat("?action_type={0}", "addDailysellsummary");
//sb.AppendFormat("&GasStationNum={0}", _Dictionary["GASSTATIONNUM"]);
//sb.AppendFormat("&GasStationName={0}", _Dictionary["GASSTATIONNAME"]);
//sb.AppendFormat("&DailySettleDate={0}", _Dictionary["DAILYSETTLEDATE"]);
//sb.AppendFormat("&GasTypeAndName={0}", _Dictionary["GASTYPEANDNAME"]);
//sb.AppendFormat("&TotalSellGasVolume={0}", _Dictionary["TOTALSELLGASVOLUME"]);
//sb.AppendFormat("&TotalSellAmount={0}", _Dictionary["TOTALSELLAMOUNT"]);
//sb.AppendFormat("&ActuallyInComeAmount={0}", _Dictionary["ACTUALLYINCOMEAMOUNT"]);
//sb.AppendFormat("&DiscountAmount={0}", _Dictionary["DISCOUNTAMOUNT"]);
//sb.AppendFormat("&CashPayAmount={0}", _Dictionary["CASHPAYAMOUNT"]);
//sb.AppendFormat("&WechatPayAmount={0}", _Dictionary["WECHATPAYAMOUNT"]);
//sb.AppendFormat("&AlipayAmount={0}", _Dictionary["ALIPAYAMOUNT"]);
//sb.AppendFormat("&UnionPayAmount={0}", _Dictionary["UNIONPAYAMOUNT"]);
//sb.AppendFormat("&staffName={0}", staffName);
//string parameters = sb.ToString();
//string RequestUrl = _BaseUrl + parameters;
//string format = "application/json;charset=UTF-8";
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("action_type", "addDailysellsummary");
parameters.Add("GasStationNum", _Dictionary["GASSTATIONNUM"]);
parameters.Add("GasStationName", HttpUtility.UrlEncode(_Dictionary["GASSTATIONNAME"]));
parameters.Add("DailySettleDate", HttpUtility.UrlEncode(_Dictionary["DAILYSETTLEDATE"]));
parameters.Add("GasTypeAndName", HttpUtility.UrlEncode(_Dictionary["GASTYPEANDNAME"]));
parameters.Add("TotalSellGasVolume", _Dictionary["TOTALSELLGASVOLUME"]);
parameters.Add("TotalSellAmount", _Dictionary["TOTALSELLAMOUNT"]);
parameters.Add("ActuallyInComeAmount", _Dictionary["ACTUALLYINCOMEAMOUNT"]);
parameters.Add("DiscountAmount", _Dictionary["DISCOUNTAMOUNT"]);
parameters.Add("CashPayAmount", _Dictionary["CASHPAYAMOUNT"]);
parameters.Add("WechatPayAmount", _Dictionary["WECHATPAYAMOUNT"]);
parameters.Add("AlipayAmount", _Dictionary["ALIPAYAMOUNT"]);
parameters.Add("UnionPayAmount", _Dictionary["UNIONPAYAMOUNT"]);
parameters.Add("staffName", staffName);
parameters.Add("ServerpartCode", _ServerpartCode);
parameters.Add("ShopCode", _ShopCode);
//string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
string reString = HZQR.Common.HttpUtil.HttpUrlPost(_BaseUrl, parameters);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"新增成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"新增失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加加油站油品销售明细记录
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string addSellDetail(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
//string[] _RequiredDatas = { "sign", "Time_stamp","GasStationNum", "GasStationName", "TradeTime", "BillNum",
//"CashierWorkNum","RefuelingGunNum","GasTypeAndName","TotalSellGasVolume","GasUnitPrice","TotalSellAmount",
//"ShopAmount","ActuallyinComeAmount","CashPayAmount","WechatpayAmount","AlipayAmount","UnionpayAmount"};//验证参数是否必传
string[] _RequiredDatas = { "sign", "Time_stamp","GASSTATIONNUM", "GASSTATIONNAME", "TRADETIME", "BILLNUM",
"CASHIERWORKNUM","CASHIERWORKNAME","REFUELINGGUNNUM","GASTYPEANDNAME","TOTALSELLGASVOLUME","GASUNITPRICE","TOTALSELLAMOUNT",
"SHOPAMOUNT","ACTUALLYINCOMEAMOUNT","CASHPAYAMOUNT","WECHATPAYAMOUNT","ALIPAYAMOUNT","UNIONPAYAMOUNT"};//验证参数是否必传
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
#endregion
#region
//根据授权码获取接口来源
string staffName = "油品接口";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
staffName = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["MobileServiceUrl"];
//StringBuilder sb = new StringBuilder();
//sb.AppendFormat("?action_type={0}", "addSellDetail");
//sb.AppendFormat("&GasStationNum={0}", _Dictionary["GASSTATIONNUM"]);
//sb.AppendFormat("&GasStationName={0}", _Dictionary["GASSTATIONNAME"]);
//sb.AppendFormat("&TradeTime={0}", _Dictionary["TRADETIME"]);
//sb.AppendFormat("&BillNum={0}", _Dictionary["BILLNUM"]);
//sb.AppendFormat("&CashierWorkNum={0}", _Dictionary["CASHIERWORKNUM"]);
//sb.AppendFormat("&CashierWorkName={0}", _Dictionary["CASHIERWORKNAME"]);
//sb.AppendFormat("&GasTypeAndName={0}", _Dictionary["GASTYPEANDNAME"]);
//sb.AppendFormat("&GasUnitPrice={0}", _Dictionary["GASUNITPRICE"]);
//sb.AppendFormat("&TotalSellAmount={0}", _Dictionary["TOTALSELLAMOUNT"]);
//sb.AppendFormat("&ShopAmount={0}", _Dictionary["SHOPAMOUNT"]);
//sb.AppendFormat("&ActuallyinComeAmount={0}", _Dictionary["ACTUALLYINCOMEAMOUNT"]);
//sb.AppendFormat("&CashPayAmount={0}", _Dictionary["CASHPAYAMOUNT"]);
//sb.AppendFormat("&WechatpayAmount={0}", _Dictionary["WECHATPAYAMOUNT"]);
//sb.AppendFormat("&AlipayAmount={0}", _Dictionary["ALIPAYAMOUNT"]);
//sb.AppendFormat("&UnionpayAmount={0}", _Dictionary["UNIONPAYAMOUNT"]);
//sb.AppendFormat("&staffName={0}", staffName);
//string parameters = sb.ToString();
//string RequestUrl = _BaseUrl + parameters;
//string format = "application/json;charset=UTF-8";
//string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("action_type", "addSellDetail");
parameters.Add("GasStationNum", _Dictionary["GASSTATIONNUM"]);
parameters.Add("GasStationName", HttpUtility.UrlEncode(_Dictionary["GASSTATIONNAME"]));
parameters.Add("TradeTime", HttpUtility.UrlEncode(_Dictionary["TRADETIME"]));
parameters.Add("BillNum", _Dictionary["BILLNUM"]);
parameters.Add("CashierWorkNum", _Dictionary["CASHIERWORKNUM"]);
parameters.Add("CashierWorkName", HttpUtility.UrlEncode(_Dictionary["CASHIERWORKNAME"]));
parameters.Add("RefuelingGunNum", _Dictionary["REFUELINGGUNNUM"]);
parameters.Add("GasTypeAndName", HttpUtility.UrlEncode(_Dictionary["GASTYPEANDNAME"]));
parameters.Add("TotalSellGasVolume", _Dictionary["TOTALSELLGASVOLUME"]);
parameters.Add("GasUnitPrice", _Dictionary["GASUNITPRICE"]);
parameters.Add("TotalSellAmount", _Dictionary["TOTALSELLAMOUNT"]);
parameters.Add("ShopAmount", _Dictionary["SHOPAMOUNT"]);
parameters.Add("ActuallyinComeAmount", _Dictionary["ACTUALLYINCOMEAMOUNT"]);
parameters.Add("CashPayAmount", _Dictionary["CASHPAYAMOUNT"]);
parameters.Add("WechatPayAmount", _Dictionary["WECHATPAYAMOUNT"]);
parameters.Add("AlipayAmount", _Dictionary["ALIPAYAMOUNT"]);
parameters.Add("UnionPayAmount", _Dictionary["UNIONPAYAMOUNT"]);
parameters.Add("staffName", staffName);
parameters.Add("ServerpartCode", _ServerpartCode);
parameters.Add("ShopCode", _ShopCode);
string reString = HZQR.Common.HttpUtil.HttpUrlPost(_BaseUrl, parameters);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"新增成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"新增失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#region ->
/// <summary>
/// 添加加油站液位仪数据
/// </summary>
/// <param name="jsonString"></param>
/// <returns></returns>
[WebMethod]
public string addLiquidlevelmeter(string code, string jsonString)
{
try
{
string result = "", MD5Key = "";
string[] codes = CheckCodes(code, jsonString, ref result, ref MD5Key);//校验授权码
if (codes == null)
{
return result;
}
#region
//string[] _RequiredDatas = { "sign", "Time_stamp", "GasStationNum", "GasStationName", "OilTankNum", "GasTypeAndName","NowVolOfOil",
//"VolOfTemperature20","EmptySpaceOfOilTank","OilHeight","WaterHeight","VolOfWater","TemperatutrOfOil"};//验证参数是否必传
string[] _RequiredDatas = { "sign", "Time_stamp", "GASSTATIONNUM", "GASSTATIONNAME",
"OILTANKNUM", "GASTYPEANDNAME","NOWVOLOFOIL","VOLOFTEMPERATURE20","EMPTYSPACEOFOILTANK",
"OILHEIGHT","WATERHEIGHT","VOLOFWATER","TEMPERATUTROFOIL"};//验证参数是否必传
//string[] _RequiredDatas = { "sign", "Time_stamp", "GASSTATIONNUM", "GASSTATIONNAME",
// "OILTANKNUM","GASTYPEANDNAME","NOWVOLOFOIL","VOLOFTEMPERATURE20","EMPTYSPACEOFOILTANK",
// "OILHEIGHT","WATERHEIGHT","VOLOFWATER","TEMPERATUTROFOIL"};//验证参数是否必传
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数" +
_RequiredData + "\",\"rows\":[{}]}";
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"记录失败:数据签名不通过!\",\"rows\":[{}]}";
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"记录失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
#region
string _ServerpartCode = codes[0], _ShopCode = codes[1],
_PlatformCode = code + DateTime.Now.ToString("yyyyMMddHHmmss");
#endregion
#region
//根据授权码获取接口来源
string staffName = "油品接口";
//获取服务区门店信息
string _OracleHelperSeller = ConfigurationManager.AppSettings["OracleHelperSeller"].ToString();
OracleHelper _OracleHelper = new OracleHelper(_OracleHelperSeller.Split(',')[0],
_OracleHelperSeller.Split(',')[1], _OracleHelperSeller.Split(',')[2], _OracleHelperSeller.Split(',')[3]);
DataTable _SERVERPARTSHOP = _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE = '" +
_ServerpartCode + "' AND B.SHOPCODE = '" + _ShopCode + "'").Tables[0];
if (_SERVERPARTSHOP.Rows.Count > 0)
{
staffName = _SERVERPARTSHOP.Rows[0]["SHOPNAME"].ToString();
}
string _BaseUrl = ConfigurationManager.AppSettings["MobileServiceUrl"];
//StringBuilder sb = new StringBuilder();
//sb.AppendFormat("?action_type={0}", "addSellDetail");
//sb.AppendFormat("&GasStationNum={0}", _Dictionary["GASSTATIONNUM"]);
//sb.AppendFormat("&GasStationName={0}", _Dictionary["GASSTATIONNAME"]);
//sb.AppendFormat("&OilTankNum={0}", _Dictionary["OILTANKNUM"]);
//sb.AppendFormat("&GasTypeAndName={0}", _Dictionary["GASTYPEANDNAME"]);
//sb.AppendFormat("&NowVolOfOil={0}", _Dictionary["NOWVOLOFOIL"]);
//sb.AppendFormat("&VolOfTemperature20={0}", _Dictionary["VOLOFTEMPERATURE20"]);
//sb.AppendFormat("&EmptySpaceOfOilTank={0}", _Dictionary["EMPTYSPACEOFOILTANK"]);
//sb.AppendFormat("&OilHeight={0}", _Dictionary["OILHEIGHT"]);
//sb.AppendFormat("&WaterHeight={0}", _Dictionary["WATERHEIGHT"]);
//sb.AppendFormat("&VolOfWater={0}", _Dictionary["VOLOFWATER"]);
//sb.AppendFormat("&TemperatutrOfOil={0}", _Dictionary["TEMPERATUTROFOIL"]);
//sb.AppendFormat("&staffName={0}", staffName);
//string parameters = sb.ToString();
//string RequestUrl = _BaseUrl + parameters;
//string format = "application/json;charset=UTF-8";
//string reString = SDK.CommonHelper.HttpUrlPost(parameters, RequestUrl, format, 0);
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("action_type", "addLiquidlevelmeter");
parameters.Add("GasStationNum", _Dictionary["GASSTATIONNUM"]);
parameters.Add("GasStationName", HttpUtility.UrlEncode(_Dictionary["GASSTATIONNAME"]));
parameters.Add("OilTankNum", _Dictionary["OILTANKNUM"]);
parameters.Add("GasTypeAndName", HttpUtility.UrlEncode(_Dictionary["GASTYPEANDNAME"]));
parameters.Add("NowVolOfOil", _Dictionary["NOWVOLOFOIL"]);
parameters.Add("VolOfTemperature20", _Dictionary["VOLOFTEMPERATURE20"]);
parameters.Add("EmptySpaceOfOilTank", _Dictionary["EMPTYSPACEOFOILTANK"]);
parameters.Add("OilHeight", _Dictionary["OILHEIGHT"]);
parameters.Add("WaterHeight", _Dictionary["WATERHEIGHT"]);
parameters.Add("VolOfWater", _Dictionary["VOLOFWATER"]);
parameters.Add("TemperatutrOfOil", _Dictionary["TEMPERATUTROFOIL"]);
parameters.Add("staffName", staffName);
parameters.Add("ServerpartCode", _ServerpartCode);
parameters.Add("ShopCode", _ShopCode);
string reString = HZQR.Common.HttpUtil.HttpUrlPost(_BaseUrl, parameters);
JObject _JObject = JObject.Parse(reString);
JObject info = new JObject();
switch (_JObject["Result_Code"].ToString())
{
case "100":
return "{\"error\": 100 ,\"msg\": \"新增成功!\",\"rows\":[" + info + "]}";
default:
string _Result_Code = _JObject["Result_Code"].ToString();
return "{\"error\": " + _Result_Code + " ,\"msg\": \"" + _JObject["Result_Desc"] + "\",\"rows\":[{}]}";
}
#endregion
}
catch (Exception ex)
{
WebService.SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"新增失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
#region ->
#region ->
/// <summary>
/// 获取交易订单数据
/// </summary>
/// <param name="code">授权码</param>
/// <param name="jsonString">入参字符串</param>
/// <returns></returns>
[WebMethod]
public string GetSellDataList(string code, string jsonString)
{
try
{
OracleHelper _OracleHelperEx = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
OracleHelper _OracleHelperSellData = new OracleHelper(_OracleConnStrSellData.Split(',')[0],
_OracleConnStrSellData.Split(',')[1], _OracleConnStrSellData.Split(',')[2], _OracleConnStrSellData.Split(',')[3]);
SDK.LogHelper.WriteSendLog(code + "\r\n" + jsonString);
if (string.IsNullOrEmpty(code) || code.Length < 10)
{
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
string MD5Key = (code.Substring(0, 6) + "|" + code.Substring(6) + "||").ToEncrypt();
string[] codeArr = OperationDataHelper<string>.IsCorrectCode(_OracleHelperEx, MD5Key);
if (codeArr == null)
{
SDK.LogHelper.WriteSendLog(code);
return "{\"error\": 201 ,\"msg\": \"查询失败:授权码错误\",\"rows\":[{}]}";
}
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
#region
string[] _RequiredDatas = { "sign", "Time_stamp", "TicketCode", "StartDate", "EndDate" };
if (!string.IsNullOrEmpty(jsonString))
{
JObject _Json = JObject.Parse(jsonString);
if (_Json.Property("TicketCode") == null &&
(_Json.Property("StartDate") == null ||
_Json.Property("EndDate") == null))
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON缺少必要参数TicketCode或StartDate、EndDate\",\"rows\":[{}]}";
}
foreach (string _RequiredData in _RequiredDatas)
{
if (_Json.Property(_RequiredData) == null)
{
continue;
}
else if (_RequiredData.ToLower() != "sign")
{
_Dictionary.Add(_RequiredData, _Json[_RequiredData].ToString());
}
}
string sign = SDK.CommonHelper.ParamSign(_Dictionary, code, MD5Key);
if (_Json["sign"].ToString() != sign)
{
return "{\"error\": 202 ,\"msg\": \"查询失败:数据签名不通过!\",\"rows\":[{}]}";
}
//非必填项
_Dictionary.Clear();
foreach (var item in _Json)
{
_Dictionary.Add(item.Key, _Json[item.Key].ToString());
}
}
else
{
return "{\"error\": 200 ,\"msg\": \"查询失败JSON参数解析异常\",\"rows\":[{}]}";
}
#endregion
string WhereSQL = "";
WhereSQL += " AND SERVERPARTCODE = '" + code.Substring(0, 6) +
"' AND SHOPCODE = '" + code.Substring(6) + "'";
if (_Dictionary.ContainsKey("TicketCode"))
{
WhereSQL += " AND HOFTORDERCODE = '" + _Dictionary["TicketCode"] + "'";
}
else
{
WhereSQL += " AND HOFTORDERCODE IS NOT NULL";
if (_Dictionary.ContainsKey("StartDate"))
{
WhereSQL += " AND SELLMASTER_DATE >= " + _Dictionary["StartDate"] + "000000";
}
if (_Dictionary.ContainsKey("EndDate"))
{
WhereSQL += " AND SELLMASTER_DATE < " + (_Dictionary["EndDate"].TryParseToInt() + 1) + "000000";
}
}
DataTable dtYSSELLMASTER = _OracleHelperSellData.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_SELLDATA.T_YSSELLMASTER WHERE SELLMASTER_STATE NOT IN (0)" + WhereSQL).Tables[0];
if (dtYSSELLMASTER.Rows.Count > 0)
{
List<Model.SellData.YTWSellDataModel> YSSELLMASTERList = new List<Model.SellData.YTWSellDataModel>();
foreach (DataRow drYSSELLMASTER in dtYSSELLMASTER.Rows)
{
Model.SellData.YTWSellDataModel yssellmasterModel = new Model.SellData.YTWSellDataModel();
yssellmasterModel.ServerpartName = drYSSELLMASTER["SERVERPART_NAME"].ToString(); //服务区名称
yssellmasterModel.ServerpartShopName = drYSSELLMASTER["SHOPNAME"].ToString(); //门店名称
yssellmasterModel.TicketCode = drYSSELLMASTER["HOFTORDERCODE"].ToString(); //订单编号
yssellmasterModel.SellCount = drYSSELLMASTER["SELLMASTER_COUNT"].TryParseToDouble().Round(2); //销售数量
yssellmasterModel.SellAmount = drYSSELLMASTER["SELLMASTER_AMOUNT"].TryParseToDouble().Round(2); //订单金额
yssellmasterModel.FactAmount = drYSSELLMASTER["PAY_AMOUNT"].TryParseToDouble().Round(2); //实付金额
yssellmasterModel.SellDate = HCC.Common.TranslateDateTime(drYSSELLMASTER["SELLMASTER_DATE"].ToString()); //销售时间
YSSELLMASTERList.Add(yssellmasterModel);
}
return "{\"error\": 100 ,\"msg\": \"查询成功!\",\"rows\":" +
JsonConvert.SerializeObject(YSSELLMASTERList) + "}";
}
else
{
return "{\"error\": 101 ,\"msg\": \"查询无数据!\",\"rows\":[{}]}";
}
}
catch (Exception ex)
{
SDK.LogHelper.WriteSendLog(ex.Message);
return "{\"error\": 999 ,\"msg\": \"查询失败:" + ex.Message + "\",\"rows\":[{}]}";
}
}
#endregion
#endregion
}
}