开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
forked from 落云谷/QJ_OneLotus
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (3)
master
nemeng
Marketing
master
分支 (3)
master
nemeng
Marketing
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (3)
master
nemeng
Marketing
JSAPI.cs 5.26 KB
一键复制 编辑 原始数据 按行查看 历史
一步莲华 提交于 2016年10月25日 17:03 +08:00 . V1.0基础版本
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using FastReflectionLib;
using System.Reflection;
using QJY.Data;
using QJY.API;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Data;
using System.Text;
using System.Net;
using System.Security;
using System.Security.Cryptography;
namespace QJY.API
{
public class JSAPI : IWsService
{
public void ProcessRequest(HttpContext context, ref Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
{
MethodInfo methodInfo = typeof(JSAPI).GetMethod(msg.Action.ToUpper());
JSAPI model = new JSAPI();
methodInfo.FastInvoke(model, new object[] { context, msg, P1, P2, UserInfo });
}
public void GETSIGNAGURE(HttpContext context, Msg_Result msg, string P1, string P2, JH_Auth_UserB.UserInfo UserInfo)
{
try
{
WXHelp wx = new WXHelp(UserInfo.QYinfo);
string url = P1;
string jsapi_ticket = wx.GetTicket().ticket;
string noncestr = CreatenNonce_str();
long timestamp = CreatenTimestamp();
var string1Builder = new StringBuilder();
string1Builder.Append("jsapi_ticket=").Append(jsapi_ticket).Append("&")
.Append("noncestr=").Append(noncestr).Append("&")
.Append("timestamp=").Append(timestamp).Append("&")
.Append("url=").Append(url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url);
string string1 = string1Builder.ToString();
byte[] StrRes = Encoding.Default.GetBytes(string1);
HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
StrRes = iSHA.ComputeHash(StrRes);
StringBuilder EnText = new StringBuilder();
foreach (byte iByte in StrRes)
{
EnText.AppendFormat("{0:x2}", iByte);
}
//return EnText.ToString();
msg.Result =
new JObject(
new JProperty("appId", UserInfo.QYinfo.corpId),
new JProperty("noncestr", noncestr),
new JProperty("timestamp", timestamp),
new JProperty("signature", EnText.ToString())
);
//通讯录权限验证
if (!string.IsNullOrEmpty(P2) && P2 == "GROUP")
{
var g_ticket = wx.GetGroup_Ticket();
string noncestr2 = CreatenNonce_str();
long timestamp2 = CreatenTimestamp();
var string1Builder2 = new StringBuilder();
string1Builder2.Append("group_ticket=").Append(g_ticket.ticket).Append("&")
.Append("noncestr=").Append(noncestr2).Append("&")
.Append("timestamp=").Append(timestamp2).Append("&")
.Append("url=").Append(url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url);
string string2 = string1Builder2.ToString();
byte[] StrRes2 = Encoding.Default.GetBytes(string2);
HashAlgorithm iSHA2 = new SHA1CryptoServiceProvider();
StrRes2 = iSHA2.ComputeHash(StrRes2);
StringBuilder EnText2 = new StringBuilder();
foreach (byte iByte in StrRes2)
{
EnText2.AppendFormat("{0:x2}", iByte);
}
msg.Result1 =
new JObject(
new JProperty("group_id", g_ticket.group_id),
new JProperty("noncestr", noncestr2),
new JProperty("timestamp", timestamp2),
new JProperty("signature", EnText2.ToString())
);
}
}
catch (Exception ex)
{
msg.ErrorMsg = ex.ToString();
}
}
/// <summary>
/// 生成随即字符串
/// </summary>
/// <returns></returns>
public string CreatenNonce_str()
{
string[] strs = new string[]
{
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
};
Random r = new Random();
var sb = new StringBuilder();
var length = strs.Length;
for (int i = 0; i < 15; i++)
{
sb.Append(strs[r.Next(length - 1)]);
}
return sb.ToString();
}
/// <summary>
/// 创建时间戳
/// </summary>
/// <returns></returns>
public long CreatenTimestamp()
{
return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

基于微信企业号的协同工作平台
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/springjava/QJ_Single.git
git@gitee.com:springjava/QJ_Single.git
springjava
QJ_Single
QJ_Single
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /