Example #1
0
        /// <summary>
        /// 获取单个门店信息
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="poi_id">为门店小程序添加门店,审核成功后返回的门店id</param>
        /// <returns></returns>
        public JsonResult <POIBusiness> MiniprogramGetPoi(string access_token, string poi_id)
        {
            string url = $"{Config.WxApi}wxa/get_store_info?access_token={access_token}";
            var    obj = new { poi_id };

            return(WxAPI.RequestData <POIBusiness>(url, obj, Method.POST));
        }
Example #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            try
            {
                TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                timestr = Convert.ToInt64(ts.TotalSeconds).ToString();

                WxAPI wxapi = WxAPI.Code_Get(1);
                appMod = appBll.SelReturnModel(1);
                string result = APIHelper.GetWebResult("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appMod.APPID + "&secret=" + appMod.Secret);
                if (result.Contains("errcode"))
                {
                    wxapi.ErroMsg(result);
                }
                //{"access_token":"7EHneznPapbfKYIQISQGVw4comvbkxIWe5e7JmTkp2Y5P93aIO5FjjEeyvk65L4lcPeL6VuMOMZ7CKel95L_ljZnjZrdi-MGPK9mZZOuSN8","expires_in":7200}
                JObject obj = JsonConvert.DeserializeObject <JObject>(result);
                appMod.Token     = obj["access_token"].ToString();
                appMod.TokenDate = DateTime.Now;
                appBll.UpdateByID(appMod);

                string  jsapi_ticket = APIHelper.GetWebResult("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + appMod.Token + "&type=jsapi");
                JObject jsapi_obj    = (JObject)JsonConvert.DeserializeObject(jsapi_ticket);
                string  stringA      = "jsapi_ticket=" + jsapi_obj["ticket"].ToString() + "&noncestr=" + nonceStr + "&timestamp=" + timestr + "&url=" + Request.Url.AbsoluteUri;
                paySign = EncryptHelper.SHA1(stringA).ToLower();
            }
            catch (Exception ex) { }
        }
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (function.isAjax())
            {
                string result = "", action = Request.Form["action"];
                int    appid = DataConverter.CLng(Request.Form["appid"]);
                api = WxAPI.Code_Get(appid);
                switch (action)
                {
                case "del":
                    result = api.DelWxMaterial(Request.Form["media_id"], Request.Form["type"]);
                    break;

                default:
                    break;
                }
                Response.Write(result); Response.Flush(); Response.End();
            }
            if (AppId > 0)
            {
                api = WxAPI.Code_Get(AppId);
            }
            if (!IsPostBack)
            {
                DataTable dt = appBll.Sel();
                WxApp_RPT.DataSource = dt;
                WxApp_RPT.DataBind();
                Datas_Hid.Value = GetConfigData(dt);
                Call.SetBreadCrumb(Master, "<li><a href='" + customPath2 + "Main.aspx'>工作台</a></li><li><a href='" + customPath2 + "WeiXin/WxAppManage.aspx'>公众号管理</a></li><li class='active'>素材管理 [<a href='MsgsSend.aspx?action=add&appid=" + AppId + "'>添加素材</a>]</li>");
            }
        }
Example #4
0
        /// <summary>
        /// 获取消息发送分布数据
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="type">字符串小写
        /// type:null || "" 获取消息发送分布数据,最大时间跨度15
        /// type:week  获取消息发送分布周数据,最大时间跨度30
        /// type:month 获取消息发送分布月数据,最大时间跨度30
        /// </param>
        /// <returns></returns>
        public DataList <UpStreamMsgDist> GetUpStreamMsgDist(string access_token, string begin_date, string end_date, string type)
        {
            string param = null;

            switch (type)
            {
            case "week":
                param = "getupstreammsgdistweek";
                break;

            case "month":
                param = "getupstreammsgdistmonth";
                break;

            default:
                param = "getupstreammsgdist";
                break;
            }
            string url = $"{Config.WxApi}datacube/{param}?access_token={access_token}";
            var    obj = new
            {
                begin_date,
                end_date
            };

            return(WxAPI.Request <DataList <UpStreamMsgDist> >(url, obj, Method.POST));
        }
Example #5
0
        protected void Pay_Btn_Click(object sender, EventArgs e)
        {
            function.WriteErrMsg("提现功能暂未开放");
            double max = GetMaxMoney();

            if (max < 1)
            {
                function.WriteErrMsg("可提现余额不够"); return;
            }
            WxAPI     wxapi  = WxAPI.Code_Get();
            M_UserAPP appMod = appBll.SelReturnModel(mu.UserID);

            if (appMod == null || string.IsNullOrEmpty(appMod.OpenID))
            {
                function.WriteErrMsg("未绑定微信账号"); return;
            }
            CommonReturn ret = SendMoney(wxapi.AppId, appMod.OpenID, max, "余额提现");

            if (ret.isok)
            {
                buser.MinusVMoney(mu.UserID, max, M_UserExpHis.SType.Purse, "余额提现");
                function.WriteSuccessMsg("提现成功", "/User/");
            }
            else
            {
                function.WriteErrMsg("操作失败,原因:" + ret.err);
            }
            //var cert= HttpService.Cert_GetByName(wxapi.AppId.Pay_SSLPath);
            //CommonReturn ret = SendMoney(wxapi.AppId, "oGUkXxN83jNbKCbtrNFny5tqHtok", 1, "测试付款");
        }
Example #6
0
        /// <summary>
        /// 图文消息群发,获取插入到图文中的html代码
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="card_id">卡券ID</param>
        /// <returns>data字段为卡券的html</returns>
        public JsonResult <string> GetCardHTML(string access_token, string card_id)
        {
            var    obj = new { card_id };
            string url = $"{Config.WxApi}card/mpnews/gethtml?access_token={access_token}";

            return(WxAPI.RequestData <string>(url, obj, Method.POST));//WxAPI.Reqeust<CardHtmlResult>(url, obj, Method.POST);
        }
        /// <summary>
        /// 获取用户身上的标签列表
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="openid">普通用户的标识,对当前公众号唯一</param>
        /// <returns></returns>
        public JsonResult <List <string> > GetUserTag(string access_token, string openid)
        {
            string url = $"{Config.WxApi}cgi-bin/tags/getidlist?access_token={access_token}";
            var    obj = new { openid };

            return(WxAPI.RequestData <List <string> >(url, obj, Method.POST));
        }
        /// <summary>
        /// 获取用户开卡时提交的信息(非跳转型开卡组件)
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="card_id">卡券id,非自定义code类型会员卡不必填写</param>
        /// <param name="code">	会员卡的code</param>
        /// <returns></returns>
        public MemberCardUserInfoReuslt GetAactiveTempInfo(string access_token, string card_id, string code)
        {
            string url = $"{Config.WxApi}card/code/get?access_token={access_token}";
            var    obj = new { card_id, code };

            return(WxAPI.Request <MemberCardUserInfoReuslt>(url, obj, Method.POST));
        }
        /// <summary>
        /// 设置支付后投放卡券
        /// </summary>
        /// <param name="access_token"></param>
        /// <param name="rule_info"></param>
        /// <returns></returns>
        public SetPayGiftCardResult SetPayGiftCard(string access_token, PayGiftCardRule rule_info)
        {
            var    obj = new { rule_info };
            string url = $"{Config.WxApi}card/paygiftcard/add?access_token={access_token}";

            return(WxAPI.Request <SetPayGiftCardResult>(url, obj, Method.POST));
        }
        /// <summary>
        /// 获取开卡插件参数
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="card_id">会员卡的card_id</param>
        /// <param name="outer_str">渠道值,用于统计本次领取的渠道参数</param>
        /// <returns>data字段为返回的url,内含调用开卡插件所需的参数</returns>
        public JsonResult <string> GetActiveUrl(string access_token, string card_id, string outer_str)
        {
            string url = $"{Config.WxApi}card/membercard/activate/geturl?access_token={access_token}";
            var    obj = new { card_id, outer_str };

            return(WxAPI.RequestData <string>(url, obj, Method.POST));
        }
        /// <summary>
        /// 获取用户开卡时提交的信息(跳转型开卡组件)
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="activate_ticket">跳转型开卡组件开卡后回调中的激活票据,可以用来获取用户开卡资料</param>
        /// <returns></returns>
        public JsonResult <MemberCardUserField> GetActiveTempInfo(string access_token, string activate_ticket)
        {
            string url = $"{Config.WxApi}card/membercard/activatetempinfo/get?access_token={access_token}";
            var    obj = new { activate_ticket };

            return(WxAPI.RequestData <MemberCardUserField>(url, obj, Method.POST));
        }
        /// <summary>
        /// 查询支付后投放卡券规则详情
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="rule_id">规则id</param>
        /// <returns></returns>
        public GetPayGiftCardResult GetPayGiftCardRule(string access_token, string rule_id)
        {
            var    obj = new { rule_id };
            string url = $"{Config.WxApi}card/paygiftcard/getbyid?access_token={access_token}";

            return(WxAPI.Request <GetPayGiftCardResult>(url, obj, Method.POST));
        }
        protected void ReToken_Btn_Click(object sender, EventArgs e)
        {
            WxAPI api = WxAPI.Code_Get(Mid);

            api.GetToken();
            function.WriteSuccessMsg("已重新获取Token");
        }
Example #14
0
        /// <summary>
        /// 获取门店小程序配置的卡券
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="poi_id">为门店小程序添加门店,审核成功后返回的门店id</param>
        /// <returns>data字段为门店配置的卡券id</returns>
        public JsonResult <string> MiniprogramPoiGetCard(string access_token, string poi_id)
        {
            string url = $"{Config.WxApi}card/storewxa/get?access_token={access_token}";
            var    obj = new { poi_id };

            return(WxAPI.RequestData <string>(url, obj, Method.POST));
        }
Example #15
0
        /// <summary>
        /// 申请微信支付礼品卡权限
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="sub_mch_id">微信支付子商户号</param>
        /// <returns>data字段为url</returns>
        public JsonResult <string> SetPayWhiteList(string access_token, string sub_mch_id)
        {
            var    obj = new { sub_mch_id };
            string url = $"{Config.WxApi}card/giftcard/pay/whitelist/add?access_token={access_token}";

            return(WxAPI.RequestData <string>(url, obj, Method.POST));
        }
        /// <summary>
        /// 更新子商户
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="info">子商户数据</param>
        /// <returns></returns>
        public JsonResult <SubMerchant> UpdateSubMerchant(string access_token, SubMerchant info)
        {
            var    obj = new { info };
            string url = $"{Config.WxApi}card/submerchant/update?access_token={access_token}";

            return(WxAPI.RequestData <SubMerchant>(url, obj, Method.POST));
        }
Example #17
0
        /// <summary>
        /// 查询导入code数目
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="card_id">进行导入code的卡券ID</param>
        /// <returns>data字段为已经成功存入的code数目。</returns>
        public JsonResult <int> GetCardCodeCount(string access_token, string card_id)
        {
            var    obj = new { card_id };
            string url = $"{Config.WxApi}card/code/getdepositcount?access_token={access_token}";

            return(WxAPI.RequestData <int>(url, obj, Method.POST));
        }
        /// <summary>
        /// 拉取单个子商户信息
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="merchant_id">子商户数据</param>
        /// <returns></returns>
        public JsonResult <SubMerchant> GetSubMerchant(string access_token, string merchant_id)
        {
            var    obj = new { merchant_id };
            string url = $"{Config.WxApi}card/submerchant/get?access_token={access_token}";

            return(WxAPI.RequestData <SubMerchant>(url, obj, Method.POST));
        }
Example #19
0
        /// <summary>
        /// 删除卡券
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="card_id">卡券ID</param>
        /// <returns></returns>
        public JsonResult DeleteCard(string access_token, string card_id)
        {
            var    obj = new { card_id };
            string url = $"{Config.WxApi}card/delete?access_token={access_token}";

            return(WxAPI.Request <JsonResult>(url, obj, Method.POST));
        }
Example #20
0
        /// <summary>
        /// 查询-单个礼品卡订单信息
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="order_id">礼品卡订单号,商户可以通过购买成功的事件推送或者批量查询订单接口获得</param>
        /// <returns></returns>
        public JsonResult <GiftCardOrder> GetOrder(string access_token, string order_id)
        {
            var    obj = new { order_id };
            string url = $"{Config.WxApi}card/giftcard/order/get?access_token={access_token}";

            return(WxAPI.RequestData <GiftCardOrder>(url, obj, Method.POST));
        }
Example #21
0
        /// <summary>
        /// 删除个性化菜单
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="menuid">个性化菜单id</param>
        /// <returns></returns>
        public JsonResult Delete(string access_token, string menuid)
        {
            string url = $"{Config.WxApi}cgi-bin/menu/delconditional?access_token={access_token}";
            var    obj = new { menuid };

            return(WxAPI.Request <JsonResult>(url, obj, Method.POST));
        }
Example #22
0
        /// <summary>
        /// 创建-礼品卡货架
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="page">礼品卡货架数据</param>
        /// <returns>data字段为货架id</returns>
        public JsonResult <string> CareateShelves(string access_token, GiftCardShelves page)
        {
            var    obj = new { page };
            string url = $"{Config.WxApi}card/giftcard/page/add?access_token={access_token}";

            return(WxAPI.RequestData <string>(url, obj, Method.POST));
        }
Example #23
0
        private DataTable SendImage(M_WX_MsgTlp tlpMod, string appids)
        {
            DataTable   dt      = GetResultStruct();
            M_WXImgItem itemMod = JsonConvert.DeserializeObject <M_WXImgItem>(tlpMod.MsgContent);

            foreach (string id in appids.Split(','))
            {
                if (DataConvert.CLng(id) < 1)
                {
                    continue;
                }
                api = WxAPI.Code_Get(Convert.ToInt32(id));
                DataRow dr = dt.NewRow();
                dr["isok"]  = true;
                dr["appid"] = api.AppId.APPID.ToString();
                dr["alias"] = api.AppId.Alias;
                switch (Request["mode_rad"])
                {
                case "loop":
                    M_WxImgMsg imgMod = new M_WxImgMsg();
                    imgMod.Articles.Add(itemMod);
                    api.SendAllBySingle(imgMod);
                    break;
                }
            }
            return(dt);
        }
Example #24
0
        /// <summary>
        /// 订单退款
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="order_id">须退款的订单id</param>
        /// <returns></returns>
        public JsonResult OrderRefund(string access_token, string order_id)
        {
            var    obj = new { order_id };
            string url = $"{Config.WxApi}card/giftcard/order/refund?access_token={access_token}";

            return(WxAPI.Request <JsonResult>(url, obj, Method.POST));
        }
Example #25
0
    public void WeiXinPay()
    {
        WxAPI   api       = WxAPI.Code_Get();//输入指的公众账号ID,如不指定,则默认取第一个
        string  code      = Request.QueryString["code"];
        string  resultStr = APIHelper.GetWebResult("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + api.AppId.APPID + "&secret=" + api.AppId.Secret + "&code=" + code + "&grant_type=authorization_code");
        JObject obj       = (JObject)JsonConvert.DeserializeObject(resultStr);

        WxPayData wxdata = new WxPayData();

        wxdata.SetValue("out_trade_no", timestr);
        wxdata.SetValue("body", "支付测试");
        wxdata.SetValue("total_fee", 1);
        wxdata.SetValue("trade_type", "JSAPI");
        wxdata.SetValue("notify_url", notifyUrl);
        wxdata.SetValue("product_id", "1212122121");         //必填
        wxdata.SetValue("openid", obj["openid"].ToString()); //公众号支付必填
        wxdata.SetValue("nonce_str", nonceStr);

        WxPayData result = WxPayApi.UnifiedOrder(wxdata);

        if (result.GetValue("return_code").ToString().Equals("FAIL"))
        {
            function.WriteErrMsg("商户" + result.GetValue("return_msg"));
        }
        prepay_id = result.GetValue("prepay_id").ToString();
    }
Example #26
0
        /// <summary>
        /// 查询-礼品卡货架信息
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="page_id">货架id</param>
        /// <returns>data字段为货架信息结构体</returns>
        public JsonResult <GiftCardShelves> GetShelves(string access_token, string page_id)
        {
            var    obj = new { page_id };
            string url = $"{Config.WxApi}card/giftcard/page/get?access_token={access_token}";

            return(WxAPI.RequestData <GiftCardShelves>(url, obj, Method.POST));
        }
Example #27
0
        /// <summary>
        /// 获取公众号/小程序所绑定的开放平台帐号
        /// </summary>
        /// <param name="access_token"></param>
        /// <param name="appid">授权公众号或小程序的 appid</param>
        public JsonResult <string> GetBindOepnPlatform(string access_token, string appid)
        {
            string url = $"{Config.WxApi}cgi-bin/open/get?access_token={access_token}";
            var    obj = new { appid };

            return(WxAPI.RequestData <string>(url, obj, Method.POST));
        }
Example #28
0
        /// <summary>
        /// 修改-礼品卡货架信息
        /// </summary>
        /// <param name="access_token">公众号access token</param>
        /// <param name="page">货架修改信息</param>
        /// <returns></returns>
        public JsonResult UpdateShelves(string access_token, GiftCardShelves page)
        {
            var    obj = new { page };
            string url = $"{Config.WxApi}card/giftcard/page/update?access_token=ACCESS_TOKEN";

            return(WxAPI.Request <JsonResult>(url, obj, Method.POST));
        }
Example #29
0
        public IActionResult WXUser_API()
        {
            WxAPI  api    = WxAPI.Code_Get(AppId);
            string action = GetParam("action");
            string result = "";

            switch (action)
            {
            case "update":
                string    openid = GetParam("openid");
                M_WX_User oldmod = wxuserBll.SelForOpenid(openid);
                if (oldmod != null && oldmod.ID > 0)
                {
                    M_WX_User usermod = api.GetWxUserModel(openid);
                    usermod.ID    = oldmod.ID;
                    usermod.CDate = DateTime.Now;
                    usermod.AppId = AppId;
                    wxuserBll.UpdateByID(usermod);
                    result = JsonConvert.SerializeObject(usermod);
                }
                else
                {
                    result = "-1";
                }
                break;

            default:
                break;
            }
            return(Content(result));
        }
Example #30
0
        protected void SaveNew_B_Click(object sender, EventArgs e)
        {
            List <M_WXImgItem> imgList = JsonConvert.DeserializeObject <List <M_WXImgItem> >(Article_Hid.Value);

            //替换img路径
            foreach (var item in imgList)
            {
                item.Description = htmlHelp.ConvertImgUrl(item.Description, "http://" + Request.Url.Authority);
                if (!string.IsNullOrEmpty(MediaID) && (item.PicUrl.Contains("https://") || item.PicUrl.Contains("http://")))//当为修改图文时判断路径是否为网络格式
                {
                    item.PicUrl = GetImgVpath(item.PicUrl);
                }
            }
            if (!string.IsNullOrEmpty(Request.Form["appids"]))
            {
                string[] appids = Request.Form["appids"].Split(',');
                foreach (var item in appids)
                {
                    WxAPI  m_api  = WxAPI.Code_Get(Convert.ToInt32(item));
                    string result = UpMpNews(imgList);
                    if (!result.Contains("errcode"))
                    {
                        function.WriteSuccessMsg("操作成功!", "WxMaterial.aspx?type=news&appid=" + AppID);
                    }
                    else
                    {
                        function.WriteSuccessMsg("操作失败!原因:" + result);
                    }
                }
            }
            else
            {
                function.WriteErrMsg("请选择微信公众号!");
            }
        }