分类目录归档:微信开发

ChatGPT+node微信公众号接入

扫码体验:(已无法体验,国内屏蔽严重,镜像地址已被封禁,我也不想花钱整国外服务器)

仓库:https://gitee.com/netzhouxiang/chat-gpt

注意:目前api.openai.com域名已被拦截,如果需要可以走代理,大家娱乐就好,别当正经事情做,我仓库里用的替代地址,而且因网络和机器人反应慢等问题,微信超五秒就会服务故障,所以我还增加了未读功能,如果是服务器可以通过主动推送消息,我这是订阅号只能发一下回一条,有需要的自己改进

效果如下:

继续阅读

屏蔽微信内部浏览器右上方分享按钮

function onBridgeReady() {  
    WeixinJSBridge.call('hideOptionMenu');  
}  
  
if (typeof WeixinJSBridge == "undefined") {  
    if (document.addEventListener) {  
        document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);  
    } else if (document.attachEvent) {  
        document.attachEvent('WeixinJSBridgeReady', onBridgeReady);  
        document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);  
    }  
} else {  
    onBridgeReady();  
} 

微信公众号开发 – 获取所有关注的用户openid

需要的类 用于反序列化

public class GuanZhuModel2
{
    public int total { get; set; }
    public int count { get; set; }
    public OpenIdListData data { get; set; }
    public string next_openid { get; set; }
}
public class OpenIdListData
{
    /// 
    /// OPENID的列表
    /// 
    public List openid { get; set; }
}

具体方法:

string returnStr = HttpUtil.Send("", "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + Convert.ToString(PayCenter.getCache("wxModelAccess")) + "&next_openid=");
       
        var obj = JsonConvert.DeserializeObject(returnStr);
        for (int i = 0; i < obj.data.openid.Count; i++)
        {
            var openid = Convert.ToString(obj.data.openid[i]);
            UserOpen openmodel = new UserOpenDAL().GetOpenIDOrType(openid, 1);
            new WXAPICommon(null, null, null).ReturnTxt(openid, "尊敬的用户,由于惠号网帐户体系升级,您的帐户类型已变更!");
            if (openmodel == null)
            {
                WeiXinCommon.GuanZhuList.Add(new GuanZhuModel()
                {
                    fromUserName = openid,
                    EventKey = ""
                });
            }
        }

微信公众号开发 – 获取授权

下面是获取公众号的授权,注意的是 公众号授权与网页授权不一样的 获取到后 缓存起来 保存2小时

string url2 = string.Format(
   "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}",
       WeiXinPay.WxConfig.appid, WeiXinPay.WxConfig.appsecret);
        string returnStr2 = HttpGet.PageGet(url2, null, "text/HTML");
        var obj2 = JsonConvert.DeserializeObject(returnStr2);
        if (obj2 != null && obj2.access_token != "")
        {
            if (PayCenter.getCache("wxModelAccess") != null)
            {
                PayCenter.removeCache("wxModelAccess");
            }
            PayCenter.addCache("wxModelAccess", obj2.access_token, 2);
        }