Skip to content

Commit

Permalink
dos.wechat v1.0.1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
itdos committed Jul 31, 2015
1 parent a3f91f2 commit 4f6f66f
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 46 deletions.
4 changes: 4 additions & 0 deletions Common/ApiList.cs
Expand Up @@ -70,5 +70,9 @@ public static class ApiList
///
/// </summary>
public static string UnifiedOrderUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";
/// <summary>
///
/// </summary>
public static string GetOauth2AccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token";
}
}
51 changes: 16 additions & 35 deletions Common/GetConfig.cs
Expand Up @@ -37,53 +37,37 @@ public static string GetAppid(WeChatParam param = null)
}
return WebConfigurationManager.AppSettings["WeChatAppId_" + param.WeChatPublic];
}
public static string GetMchId(WeChatParam param)
public static string GetMchId(WeChatParam param = null)
{
if (param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
if (param == null || string.IsNullOrWhiteSpace(param.WeChatPublic) || param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
{
return WebConfigurationManager.AppSettings["WeChatPartnerID"];
}
else if (param.WeChatPublic == EnumHelper.WeChatPublic.XczJl.ToString())
{
return WebConfigurationManager.AppSettings["WeChatPartnerID_XczJl"];
}
return WebConfigurationManager.AppSettings["WeChatPartnerID"];
return WebConfigurationManager.AppSettings["WeChatPartnerID_" + param.WeChatPublic];
}
public static string GetKey(WeChatParam param)
public static string GetKey(WeChatParam param = null)
{
if (param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
if (param == null || string.IsNullOrWhiteSpace(param.WeChatPublic) || param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
{
return WebConfigurationManager.AppSettings["WeChatPartnerKey"];
}
else if (param.WeChatPublic == EnumHelper.WeChatPublic.XczJl.ToString())
{
return WebConfigurationManager.AppSettings["WeChatPartnerKey_XczJl"];
}
return WebConfigurationManager.AppSettings["WeChatPartnerKey"];
return WebConfigurationManager.AppSettings["WeChatPartnerKey_" + param.WeChatPublic];
}
public static string GetCertPath(WeChatParam param)
public static string GetCertPath(WeChatParam param = null)
{
if (param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
if (param == null || string.IsNullOrWhiteSpace(param.WeChatPublic) || param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
{
return WebConfigurationManager.AppSettings["WeChatCertPath"];
}
else if (param.WeChatPublic == EnumHelper.WeChatPublic.XczJl.ToString())
{
return WebConfigurationManager.AppSettings["WeChatCertPath_XczJl"];
}
return WebConfigurationManager.AppSettings["WeChatCertPath"];
return WebConfigurationManager.AppSettings["WeChatCertPath_" + param.WeChatPublic];
}
public static string GetCertPwd(WeChatParam param)
public static string GetCertPwd(WeChatParam param = null)
{
if (param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
if (param == null || string.IsNullOrWhiteSpace(param.WeChatPublic) || param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
{
return WebConfigurationManager.AppSettings["WeChatCertPwd"];
}
else if (param.WeChatPublic == EnumHelper.WeChatPublic.XczJl.ToString())
{
return WebConfigurationManager.AppSettings["WeChatCertPwd_XczJl"];
}
return WebConfigurationManager.AppSettings["WeChatCertPwd"];
return WebConfigurationManager.AppSettings["WeChatCertPwd_" + param.WeChatPublic];
}
/// <summary>
/// 获取web.config的WeChatSecret
Expand All @@ -99,17 +83,14 @@ public static string GetSecret(WeChatParam param = null)
}
return WebConfigurationManager.AppSettings["WeChatSecret_" + param.WeChatPublic];
}
public static string GetNotify(WeChatParam param)
public static string GetNotify(WeChatParam param = null)
{
if (param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
if (param == null || string.IsNullOrWhiteSpace(param.WeChatPublic) ||
param.WeChatPublic == EnumHelper.WeChatPublic.Xcz.ToString())
{
return WebConfigurationManager.AppSettings["TenpayNotify"];
}
else if (param.WeChatPublic == EnumHelper.WeChatPublic.XczJl.ToString())
{
return WebConfigurationManager.AppSettings["TenpayNotify_XczJl"];
}
return WebConfigurationManager.AppSettings["TenpayNotify"];
return WebConfigurationManager.AppSettings["TenpayNotify_" + param.WeChatPublic];
}
public static string GetToken(WeChatParam param = null)
{
Expand Down
28 changes: 28 additions & 0 deletions Common/UserParam.cs
@@ -0,0 +1,28 @@
#region << 版 本 注 释 >>
/****************************************************
* 文 件 名:EnumService
* Copyright(c) 青之软件
* CLR 版本: 4.0.30319.17929
* 创 建 人:ITdos
* 电子邮箱:admin@itdos.com
* 创建日期:2015/7/31 10:57:30
* 文件描述:
******************************************************
* 修 改 人:
* 修改日期:
* 备注描述:
*******************************************************/
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dos.WeChat.Model;

namespace Dos.WeChat.Model
{
public class UserParam : WeChatParam
{
public string Code { get; set; }
}
}
2 changes: 1 addition & 1 deletion Dos.WeChat.csproj
Expand Up @@ -58,7 +58,7 @@
<ItemGroup>
<Compile Include="Common\ApiList.cs" />
<Compile Include="Common\AttributeHelper.cs" />
<Compile Include="Common\LogHelper.cs" />
<Compile Include="Common\UserParam.cs" />
<Compile Include="Common\WeChatResult.cs" />
<Compile Include="Base\Token.cs" />
<Compile Include="Base\JoinToken.cs" />
Expand Down
2 changes: 1 addition & 1 deletion Dos.WeChat.csproj.user
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>
8 changes: 5 additions & 3 deletions Pay/PayUtil.cs
Expand Up @@ -276,7 +276,7 @@ public BaseResult Notify(WeChatParam param,HttpContextBase context)
/// <param name="param"></param>
/// <param name="context"></param>
/// <returns></returns>
public string GetUnifiedOrder(PayParam param, HttpContextBase context)
public string GetUnifiedOrder(PayParam param = null, HttpContextBase context = null)
{
if (param.TotalFee == null || string.IsNullOrWhiteSpace(param.ProductName) || string.IsNullOrWhiteSpace(param.OrderNumber) || string.IsNullOrWhiteSpace(param.TimeExpire) || param.TradeType == null)
{
Expand Down Expand Up @@ -305,15 +305,17 @@ public string GetUnifiedOrder(PayParam param, HttpContextBase context)
var reqXml = req.ParseXml();
//LogHelper.WriteLog("aa_", "reqXml的值是:" + reqXml);
var http = new HttpUtil();
http.SetCharset(context.Request.ContentEncoding.BodyName);
http.SetCharset(context == null
? HttpContext.Current.Request.ContentEncoding.BodyName
: context.Request.ContentEncoding.BodyName);
var result = http.Send(reqXml, ApiList.UnifiedOrderUrl);
return result;
}
/// <summary>
/// 传入 OpenId,订单Id,金额(分),过期时间(20141010121314),商品名称。
/// </summary>
/// <returns></returns>
public string CreateJSAPIPayJson(PayParam param, HttpContextBase context)
public string CreateJSAPIPayJson(PayParam param, HttpContextBase context = null)
{
if (param.TotalFee == null || string.IsNullOrWhiteSpace(param.ProductName) || string.IsNullOrWhiteSpace(param.OrderNumber) || string.IsNullOrWhiteSpace(param.OpenId) || string.IsNullOrWhiteSpace(param.TimeExpire))
{
Expand Down
23 changes: 20 additions & 3 deletions Pay/RequestHandler.cs
Expand Up @@ -41,13 +41,19 @@ public RequestHandler()
public RequestHandler(HttpContextBase httpContext)
{
Parameters = new Hashtable();
HttpContext = httpContext;
ContextBase = httpContext;
}
public RequestHandler(HttpContext httpContext)
{
Parameters = new Hashtable();
Context = httpContext;
}
/// <summary>
/// 密钥
/// </summary>
private string _key;
protected HttpContextBase HttpContext;
protected HttpContextBase ContextBase;
protected HttpContext Context;
/// <summary>
/// 请求的参数
/// </summary>
Expand Down Expand Up @@ -226,7 +232,18 @@ protected virtual string GetCharset()
{
try
{
return HttpContext.Request.ContentEncoding.BodyName;
if (ContextBase != null)
{
return ContextBase.Request.ContentEncoding.BodyName;
}
else if (Context != null)
{
return Context.Request.ContentEncoding.BodyName;
}
else
{
return HttpContext.Current.Request.ContentEncoding.BodyName;
}
}
catch (Exception)
{
Expand Down
4 changes: 2 additions & 2 deletions Properties/AssemblyInfo.cs
Expand Up @@ -32,5 +32,5 @@
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.1.1")]
[assembly: AssemblyFileVersion("1.0.1.1")]
[assembly: AssemblyVersion("1.0.1.3")]
[assembly: AssemblyFileVersion("1.0.1.3")]
17 changes: 16 additions & 1 deletion User/UserHelper.cs
Expand Up @@ -46,11 +46,26 @@ public UserInfoModel GetUserInfo(WeChatParam param)
{
var result = HttpHelper.Get<UserInfoModel>(ApiList.GetUserInfo, new HttpParam()
{
{ "access_token", param.AccessToken },
{ "access_token", Token.GetAccessToken(param) },
{ "openid", param.OpenId },
{ "lang", "zh_CN" }
});
return result;
}
/// <summary>
/// 传入Code
/// </summary>
public static Dictionary<string, string> GetOauth2AccessToken(UserParam param)
{
var param2 = new HttpParam()
{
{"appid",GetConfig.GetAppid(param)},
{"secret", GetConfig.GetSecret(param)},
{"code", param.Code},
{"grant_type", "authorization_code"}
};
var dic = HttpHelper.Get<Dictionary<string, string>>(ApiList.GetOauth2AccessTokenUrl, param2);
return dic;
}
}
}

0 comments on commit 4f6f66f

Please sign in to comment.