微信开发-微信一般帮助类

public class CommonUtil
    {
        #region 微信相关帮助

        /// <summary>
        /// 生成指定长度的签名的随机串
        /// </summary>
        /// <param name="length"></param>
        /// <returns></returns>
        public static String CreateNoncestr(int length)
        {
            String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            String res = "";
            Random rd = new Random();
            for (int i = 0; i < length; i++)
            {
                res += chars[rd.Next(chars.Length - 1)];
            }
            return res;
        }

        /// <summary>
        /// 生成签名的随机串
        /// </summary>
        /// <returns></returns>
        public static String CreateNoncestr()
        {
            String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            String res = "";
            Random rd = new Random();
            for (int i = 0; i < 16; i++)
            {
                res += chars[rd.Next(chars.Length - 1)];
            }
            return res;
        }

        /// <summary>
        /// 生成签名的时间戳
        /// </summary>
        /// <returns></returns>
        public static String CreateTimeStamp()
        {
            return ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString();
        }

        /// <summary>
        /// 获取微信JS接口的临时票据
        /// </summary>
        /// <param name="jsTicketUrl">js ticket url</param>
        /// <param name="accessToken">微信的accesstoken</param>
        /// <returns></returns>
        public static String CreateJsTicket(string jsTicketUrl, string accessToken)
        {
            string ticketUrl = string.Format(jsTicketUrl, accessToken);
            string result =WebHttpHelper.CreateWebrequest(ticketUrl);
            IHashObject obj = Carpa.Web.Ajax.JavaScriptSerializer.CreateInstance().DeserializeObject(result) as IHashObject;
            if (obj.Count > 0)
            {
                if (obj.GetValue("errcode", "").Equals("0"))
                {
                    return obj.GetValue("ticket", "");
                }
            }
            return "";
        }

        /// <summary>
        /// 生成 wx config签名;参与签名的参数如下(jsapi_ticket,noncestr,&timestamp,url-当前请求的url)
        /// </summary>
        /// <param name="dic"></param>
        /// <returns></returns>
        public static String CreateSignature(Dictionary<string, string> dic)
        {
            //字典排序
            var dictemp = dic.OrderBy(d => d.Key);
            #region 生成url字符串
            StringBuilder str = new StringBuilder();
            foreach (var item in dictemp)
            {
                str.AppendFormat("{0}={1}&", item.Key, item.Value);
            }
            #endregion
            var temp = str.ToString().Trim(‘&‘);
            return Util.Sha1(temp);
        }

        /// <summary>
        /// 网页授权认证获取用户的opneid
        /// </summary>
        /// <param name="url">授权地址</param>
        /// <param name="appId">appid</param>
        /// <param name="appKey">appid</param>
        /// <param name="code">授权获取的code</param>
        /// <returns></returns>
        public static String GetOpenIdByOauth(string url, string appId, string appKey, string code)
        {
            string aUrl = string.Format(url, appId, appKey, code);
            string result = WebHttpHelper.CreateWebrequest(aUrl);
            IHashObject obj = Carpa.Web.Ajax.JavaScriptSerializer.CreateInstance().DeserializeObject(result) as IHashObject;
            if (obj.Count > 0)
            {
                if (obj.GetValue("openid", "") != "")
                {
                    return obj.GetValue("openid", "");
                }
            }
            return "";
        }

        #endregion
    }
时间: 2024-12-05 20:26:18

微信开发-微信一般帮助类的相关文章

微信开发-微信公众平台开放JS-SDK

微信开放JS-SDK,助理网页开发 微信公众平台面向开发者开放微信内网页开发工具包(微信JS-SDK) JS-SDK这个工具包提供了以下 11 类的接口集,开发者从今天开始可以调用以下功能,让基于微信的Web-App 提供更好的体验给用户. 分享类接口: 图像类接口: 音频类接口: 智能类接口: 设备信息类接口: 地理位置类接口: 界面操作类接口: 微信扫一扫接口: 微信小店接口: 微信卡券接口: 微信支付接口: 这些接口中,除了图像类接口和地理位置类接口中的部分功能,其他大多数本身就是微信才有

微信开发微信“摇一摇&#183;周边”正式开放

今日,在微信公开课第三季长沙站现场,微信团队宣布“摇一摇·周边”(以下简称“摇周边”)正式对外开放.拥有微信认证的公众帐号商户,均可通过摇周边的商户申请平台(https://zb.weixin.qq.com/)或者微信公众平台后台申请入驻.联合微信支付.公众帐号.微信卡包,摇周边为更多商家提供了便捷连接用户和精准近场服务的能力. 据悉,摇周边还将于 4 月 13 日开展“免费送设备”体验活动,前 2000 名入驻的商户将有机会获得微信团队免费赠送的摇周边设备. 摇周边是微信基于低功耗蓝牙技术的

C#微信开发-微信JS-SDK(1)之通过config接口注入权限验证配置

官方文档是微信JS-SDK的使用步骤http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#JSSDK.E4.BD.BF.E7.94.A8.E6.AD.A5.E9.AA.A4 ,很多人在config接口注入权限验证配置的时候出现signature(签名无效),在这把自己开发的代码分享一下 一.验证权限我们需要获取四个参数appId.timestamp.nonceStr.signature参数获取详细见官方文档:ht

微信开发微信支付接口调试工具,不用花生壳也行

1:为什么要使用ngrok 在微信开发的时候 需要填写与微信服务器相连接的url 这个url必须是外网域名, 也就是说我们需要在这个外网域名对应的ip服务器上做开发,而没办法本地开发调试 所以用ngrok获得一个外网域名 这个外网域名实际访问的是本地主机 这样把此外网域名填入到微信需要的外网url里 就可以在本地开发调试了 2:下载ngrok ngrok - secure introspectable tunnels to localhostwindows版 3:注册ngrok 得到your a

微信开发微信网页授权登陆不成功的问题

最近一直在研究围绕微信平台的相关开发,其中踩到了不少坑,特来此记录一番,也方便交流.真想吐槽为什么微信弄个开放平台还要加一个公众平台呢?两边文档还不一样.类似的功能还得写两次.上网查了下,果然有人在喷微信文档多次误导第三方sdk写错了:) 上次接到一个任务,PC网站要支持微信第三方登陆功能.一直以为是在服务号那边做相应的配置和处理,看的是这边的文档 .尝试了多次都是提示scope没有相关权限,授权地址格式如下: [javascript] https://open.weixin.qq.com/co

[微信开发] - 微信支付 JSAPI 形式

微信官方的JSAPI文档 微信官方的JSAPI支付SDK与DEMO下载 查看JSAPI的API可以从这里看 下载了支付DEMO其实有些地方不对的,比如如果做沙盒测试的时候,需要使用getsignkey,而官方的demo中没有这个. 看了看sf.gg的一个文章,之后把获取getsignkey的api请求加了进去. 现在的 WXPayConstants : package com.wechat.demo.wxpay; import org.apache.http.client.HttpClient;

微信开发-微信内置浏览器的Javascript API

源代码来自 http://www.baidufe.com/ /**! * 微信内置浏览器的Javascript API,功能包括: * * 1.分享到微信朋友圈 * 2.分享给微信好友 * 3.分享到腾讯微博 * 4.隐藏/显示右上角的菜单入口 * 5.隐藏/显示底部浏览器工具栏 * 6.获取当前的网络状态 * 7.调起微信客户端的图片播放组件 * 8.关闭公众平台Web页面 * 9.判断当前网页是否在微信内置浏览器中打开 * 10.支持WeixinApi的错误监控 * 11.发送电子邮件 *

微信开发-微信红包实例;

此开发结合THINKPHP: 效果图: step:1 写一个红包工具类: 目录为__ROOT__\ThinkPHP\Library\Vendor\phpPay\WxPayPubHelper\WxPayPubHelper.php /* * 红包工具类 * */ class bonus_pub extends Wxpay_client_pub{ function __construct() { //设置接口链接 $this->url = "https://api.mch.weixin.qq.c

微信开发 --- 微信支付

首先是微信支付的一个SDK:可以下载微信支付的 SDK 看上面的具体方法: 地址: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 示例: 原文地址:https://www.cnblogs.com/e0yu/p/8523838.html