資源簡介
實(shí)例源碼,簽到?jīng)]實(shí)現(xiàn)重復(fù)簽到,考慮到用于考勤,可以提取第一次簽到和最后一次簽到做為上班和下班考勤??筛鶕?jù)經(jīng)緯度和公司的經(jīng)緯度計(jì)算距離來實(shí)現(xiàn)是否在公司操作的。
有三個(gè)表,cache做緩存,臨時(shí)記錄token,這個(gè)可以改用iis的cache或者其他keyvalue數(shù)據(jù)庫。location表記錄兩種來源的地理位置信息。sign表記錄簽到信息。
因?yàn)橥祽?,沒建立業(yè)務(wù)層項(xiàng)目,部分業(yè)務(wù)邏輯混合到數(shù)據(jù)層,大家可以自己整理。
有完整的業(yè)務(wù)代碼,學(xué)習(xí)微信開發(fā)難得的參考資料。涉及到j(luò)s-sdk\accesstoken、簽名等

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Data;
using?System.Data.SqlClient;
using?DotNetOpenAuth.SDK;
namespace?DotNetOpenAuth.DataAccess
{//來自:http://www.DotNetOpenAuth.com
????public?class?Caches
????{
????????///?
????????///?添加緩存,如果存在則更新
????????///?
????????///?
????????///?
????????///?
????????///?
????????public?static?int?AddCache(string?name?string?itemValue?int?expires)
????????{
????????????try
????????????{
????????????????string?sqlStr?=?@“IF?EXISTS(SELECT?id?FROM?wxCache?WHERE?Name=@Name)
BEGIN
UPDATE?wxCache?SET?ItemValue=@ItemValueExpires=@Expires?WHERE?Name=@Name
END
ELSE
BEGIN
INSERT?INTO?wxCache?VALUES(@Name@ItemValue@Expires)
END
;SELECT?@@IDENTITY“;
????????????????SqlParameter[]?Params?=?new?SqlParameter[3];
????????????????Params[0]?=?new?SqlParameter()?{?ParameterName?=?“@Name“?SqlDbType?=?SqlDbType.VarChar?Value?=?name?Direction?=?ParameterDirection.Input?};
????????????????Params[1]?=?new?SqlParameter()?{?ParameterName?=?“@ItemValue“?SqlDbType?=?SqlDbType.VarChar?Value?=?itemValue?Direction?=?ParameterDirection.Input?};
????????????????Params[2]?=?new?SqlParameter()?{?ParameterName?=?“@Expires“?SqlDbType?=?SqlDbType.VarChar?Value?=?expires.ToString()?Direction?=?ParameterDirection.Input?};
???????????????
????????????????return?Convert.ToInt32(SqlHelper.ExecuteScalar(SqlHelper.Conn?CommandType.Text?sqlStr?Params));
????????????}
????????????catch
????????????{
????????????}
????????????return?0;
????????}
????????public?static?string?GetAccessToken(string?corpid?string?corpsecret)
????????{
????????????AccessToken?at?=?new?AccessToken();
????????????at.errcode?=?-1;
????????????string?sql?=?“SELECT?TOP?1?ItemValueExpires?FROM?wxCache?WHERE?Name=‘a(chǎn)ccess_token‘“;
????????????DataTable?dt?=?SqlHelper.ExecuteDataset(SqlHelper.Conn?CommandType.Text?sql).Tables[0];
????????????bool?result?=?false;
????????????if?(dt?!=?null)
????????????{
????????????????try
????????????????{
????????????????????if?(dt.Rows.Count?>?0)
????????????????????{
????????????????????????at.expires_in?=?Convert.ToInt32(dt.Rows[0][“Expires“]);
????????????????????????if?(at.expires_in?*?1000?>?OpenApi.GetTime())
????????????????????????{
????????????????????????????at.errcode?=?0;
????????????????????????????at.errmsg?=?“ok“;
????????????????????????????at.access_token?=?dt.Rows[0][“ItemValue“].ToString();
????????????????????????????result?=?true;
????????????????????????}???????????????????????
????????????????????}
????????????????}
????????????????catch
????????????????{
????????????????}
????????????????finally
????????????????{
????????????????????dt.Dispose();
????????????????}
????????????}
????????????if(!result)
????????????{
????????????????at?=?OpenApi.GetAccessToken(corpid?corpsecret);
???
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-06-02?10:33??DotNetOpenAuth.DataAccess\
?????目錄???????????0??2015-05-29?10:58??DotNetOpenAuth.DataAccess\bin\
?????目錄???????????0??2015-06-02?13:59??DotNetOpenAuth.DataAccess\bin\Debug\
?????文件???????28672??2015-06-02?13:59??DotNetOpenAuth.DataAccess\bin\Debug\DotNetOpenAuth.DataAccess.dll
?????文件???????69120??2015-06-02?13:59??DotNetOpenAuth.DataAccess\bin\Debug\DotNetOpenAuth.DataAccess.pdb
?????文件???????17408??2015-06-02?13:59??DotNetOpenAuth.DataAccess\bin\Debug\DotNetOpenAuth.SDK.dll
?????文件???????36352??2015-06-02?13:59??DotNetOpenAuth.DataAccess\bin\Debug\DotNetOpenAuth.SDK.pdb
?????目錄???????????0??2015-05-29?10:58??DotNetOpenAuth.DataAccess\bin\Release\
?????文件????????4979??2015-06-02?13:44??DotNetOpenAuth.DataAccess\Caches.cs
?????文件????????2794??2015-06-02?10:35??DotNetOpenAuth.DataAccess\DotNetOpenAuth.DataAccess.csproj
?????文件????????3331??2015-06-02?10:40??DotNetOpenAuth.DataAccess\Location.cs
?????目錄???????????0??2015-05-29?10:55??DotNetOpenAuth.DataAccess\obj\
?????目錄???????????0??2015-06-02?13:59??DotNetOpenAuth.DataAccess\obj\Debug\
?????文件????????6449??2015-06-02?10:33??DotNetOpenAuth.DataAccess\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件?????????670??2015-06-02?13:59??DotNetOpenAuth.DataAccess\obj\Debug\DotNetOpenAuth.DataAccess.csproj.FileListAbsolute.txt
?????文件????????7107??2015-06-02?13:59??DotNetOpenAuth.DataAccess\obj\Debug\DotNetOpenAuth.DataAccess.csprojResolveAssemblyReference.cache
?????文件???????28672??2015-06-02?13:59??DotNetOpenAuth.DataAccess\obj\Debug\DotNetOpenAuth.DataAccess.dll
?????文件???????69120??2015-06-02?13:59??DotNetOpenAuth.DataAccess\obj\Debug\DotNetOpenAuth.DataAccess.pdb
?????目錄???????????0??2015-05-29?10:55??DotNetOpenAuth.DataAccess\obj\Debug\TempPE\
?????目錄???????????0??2015-05-29?10:55??DotNetOpenAuth.DataAccess\Properties\
?????文件????????1370??2015-05-29?10:55??DotNetOpenAuth.DataAccess\Properties\AssemblyInfo.cs
?????文件????????1887??2015-06-02?13:57??DotNetOpenAuth.DataAccess\Sign.cs
?????文件??????153017??2015-05-29?13:33??DotNetOpenAuth.DataAccess\SqlHelper.cs
?????目錄???????????0??2015-06-02?14:03??DotNetOpenAuth.Document\
?????文件?????????429??2015-05-26?17:20??DotNetOpenAuth.Document\Readme.txt
?????文件????????7987??2015-05-26?17:23??DotNetOpenAuth.Document\Sample.cs
?????文件????????4259??2015-06-02?10:47??DotNetOpenAuth.Document\數(shù)據(jù)表.SQL
?????目錄???????????0??2015-06-02?10:35??DotNetOpenAuth.SDK\
?????目錄???????????0??2015-05-26?15:36??DotNetOpenAuth.SDK\bin\
?????目錄???????????0??2015-06-02?13:59??DotNetOpenAuth.SDK\bin\Debug\
?????文件???????27136??2015-05-26?16:13??DotNetOpenAuth.SDK\bin\Debug\DotNetOpenAuth.dll
............此處省略66個(gè)文件信息
評(píng)論
共有 條評(píng)論