100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C# 微信开发-----微信会员卡(三)激活会员卡

C# 微信开发-----微信会员卡(三)激活会员卡

时间:2022-12-12 15:39:45

相关推荐

C# 微信开发-----微信会员卡(三)激活会员卡

在会员领取了会员卡之后需要做一个跳转性激活,模式请看下图:

在创建会员卡的时候需要配置下这个参数的值:

memberActivate.aspx页面代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="memberActivate.aspx.cs" Inherits="ChainStock.mobile.member.memberActivate" %><!DOCTYPE html><html xmlns="/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>激活会员卡</title><script src="js/jquery.min.js" type="text/javascript"></script><%--<script src="scripts/bootstrap.min.js" type="text/javascript"></script>--%><link href="css/bootstrap.min.css" rel="stylesheet" /><style type="text/css">.no-padding {padding: 0px;}.no-margin {margin: 0px;}.btn_active {background-color: #019a01;width: 100%;padding: 7px 0px;color: white;border: 1px solid #019a01;}.btn_return {background-color: #f8f8f8;width: 100%;padding: 7px 0px;color: black;border: 1px solid #e6e6e6;}</style><script type="text/javascript">$(function () {$(".btn_return").bind("click", function () {event.preventDefault();window.history.back();})});</script></head><body style="background-color: #f2f2f2;" class="no-padding no-margin"><form id="form1" runat="server"><div class="container no-padding"><br /><div class="col-xs-12"><div class="col-xs-12"><label>请确定以下信息:</label></div></div><div class="clearfix"></div><br /><div style="background-color: white; padding: 30px 0px; border-bottom: 1px solid #dbdbdb; border-top: 1px solid #dbdbdb;"><div class="col-xs-12"><div class="col-xs-3">用户名</div><div class="col-xs-9 no-padding text-left" id="divMemName" runat="server"></div><div class="clearfix"></div></div><div class="col-xs-12" style="padding-top: 10px;"><div class="col-xs-3">手机号</div><div class="col-xs-9 no-padding text-left" id="divMemMobile" runat="server"></div><div class="clearfix"></div></div><div class="clearfix"></div></div><br /><div class="col-xs-12 no-padding"><div class="col-xs-12 text-center"><input type="button" class="btn btn-sm btn_active" value="激活会员卡" id="btnActiveMem" /><input type="hidden" id="hd_MemMobile" value="" runat="server" /><input type="hidden" id="hd_CardCode" value="" runat="server" /><input type="hidden" id="hd_CardId" value="" runat="server" /></div><div class="col-xs-12 text-center"><br /><input type="button" class="btn btn-sm btn_return" value="返 回" /></div><div class="col-xs-12 "><h6 style="color: red;">注:激活后不可修改上面的信息</h6></div><div class="clearfix"></div></div></div></form><script type="text/javascript" src="scripts/jquery-2.1.4.min.js"></script><script type="text/javascript" src="http://res./open/js/jweixin-1.4.0.js"></script><script type="text/javascript">$(function () {//激活会员卡$("#btnActiveMem").click(function () {$.ajax({type: "GET",url: "../../Service/AjaxService.ashx?Method=Wx_ActivateCard",data: {memMobile: $("#hd_MemMobile").val(),cardCode: $("#hd_CardCode").val(),cardId: $("#hd_CardId").val()},dataType: "text",success: function (result) {if (result != null && result != "") {switch (result) {case "0":alert("系统错误,请稍后再试");break;case "-1":alert("系统异常,请联系管理员");break;case "-2":alert("您还不是会员,激活失败");break;default:alert("激活成功");wx.closeWindow();//这一步就是会员激活了之后就自动跳转到会员卡详细页面 }}}});});})</script></body></html>

后台代码:

using Chain.Wechat;using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Data;using System.IO;using System.Linq;using ;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace ChainStock.mobile.member{public partial class memberActivate : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){BindData();}void BindData(){string code = "";string openid = "";string access_token = "";string strEncrypt_code = "";string tick_code = "";string strActivate_ticket = "";string cardId = "";try{if (!string.IsNullOrEmpty(Request.QueryString["encrypt_code"])){strEncrypt_code = Request.QueryString["encrypt_code"].ToString();}if (!string.IsNullOrEmpty(Request.QueryString["card_id"])){cardId = Request.QueryString["card_id"].ToString();hd_CardId.Value = cardId;}string getAuthorize = GetAuthorize();if (getAuthorize != ""){getAuthorize = "[" + getAuthorize + "]";Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];if (obj["access_token"] != null && obj["access_token"].ToString() != ""){access_token = obj["access_token"].ToString();//用户OpenID }}if (!string.IsNullOrEmpty(access_token)){if (!string.IsNullOrEmpty(Request.QueryString["encrypt_code"])){strEncrypt_code = Request.QueryString["encrypt_code"].ToString();string postUrl = "https://api./card/code/decrypt?access_token=" + access_token;string postDate = "{\"encrypt_code\":\"" + strEncrypt_code + "\"}";string strResult = PostWebRequest(postUrl, postDate);strResult = "[" + strResult + "]";Newtonsoft.Json.Linq.JArray codeArray = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(strResult);Newtonsoft.Json.Linq.JObject objResult = (Newtonsoft.Json.Linq.JObject)codeArray[0];if (objResult["errmsg"].ToString() == "ok"){code = objResult["code"].ToString();hd_CardCode.Value = code;if (!string.IsNullOrEmpty(Request["activate_ticket"])){strActivate_ticket = Request["activate_ticket"].ToString();}if (!string.IsNullOrEmpty(strActivate_ticket)){string ticketPostUrl = "https://api./card/membercard/activatetempinfo/get?access_token=" + access_token;string ticketPostData = "{ \"activate_ticket\" : \"" + strActivate_ticket + "\"}";string userInfoResult = PostWebRequest(ticketPostUrl, ticketPostData);userInfoResult = "[" + userInfoResult + "]";Newtonsoft.Json.Linq.JArray userInfoArray = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(userInfoResult);Newtonsoft.Json.Linq.JObject objUserInfo = (Newtonsoft.Json.Linq.JObject)userInfoArray[0];if (objUserInfo["errmsg"].ToString() == "ok"){string userMobile = objUserInfo["info"]["common_field_list"][0]["value"].ToString();string userName = objUserInfo["info"]["common_field_list"][1]["value"].ToString();if (!string.IsNullOrEmpty(userMobile)){hd_MemMobile.Value = userMobile;divMemMobile.InnerText = userMobile;divMemName.InnerText = userName;}}}}}}}catch (Exception ex){PubFunction.LogError("微信激活会员授权异常:" + ex);}}//通过code换取网页授权access_tokenpublic string GetAuthorize(){//PubFunction.curParameter.strWeiXinAppID = "wxcb014df3a2583811";//PubFunction.curParameter.strWeiXinAppSecret = "1fb18946950b112cd79103a7b1f9249b";if (PubFunction.curParameter.strWeiXinAppID != null && PubFunction.curParameter.strWeiXinAppSecret != null){string templateUrl = "https://api./cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";templateUrl = string.Format(templateUrl, PubFunction.curParameter.strWeiXinAppID, PubFunction.curParameter.strWeiXinAppSecret);HttpRequestHelper hrh = new HttpRequestHelper();return hrh.Reqeust(templateUrl);}else{return "";}}/// <summary>/// 发送Post请求到微信端/// </summary>/// <param name="postUrl">请求的路径</param>/// <param name="paramData">发送的数据</param>/// <returns></returns>public string PostWebRequest(string postUrl, string paramData){string ret = string.Empty;try{byte[] byteArray = Encoding.UTF8.GetBytes(paramData); //转化HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));webReq.Method = "POST";webReq.ContentType = "application/json";webReq.ContentLength = byteArray.Length;Stream newStream = webReq.GetRequestStream();newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close();HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);ret = sr.ReadToEnd();sr.Close();response.Close();newStream.Close();}catch (Exception ex){PubFunction.LogError(ex);}return ret;}}}

激活时我使用了一般处理程序来激活的代码如下:这个是根据我的系统做了一个判断,是我系统中的会员才能激活,否则不能激活

#region 跳转式激活会员卡 参考:https://mp./wiki?t=resource/res_main&id=mp1451025283 6.6.2public void Wx_ActivateCard(){int flag = 0;string access_token = "";try{string strMemMobile = !string.IsNullOrEmpty(Request["memMobile"]) ? Request["memMobile"].ToString() : "";//手机号string strCardCode = !string.IsNullOrEmpty(Request["cardCode"]) ? Request["cardCode"].ToString() : "";//卡Codestring strCardId = !string.IsNullOrEmpty(Request["cardId"]) ? Request["cardId"].ToString() : "";//卡IDif (!string.IsNullOrEmpty(strMemMobile)){Chain.BLL.Mem bllMem = new Chain.BLL.Mem();DataTable dtMem = bllMem.GetList(" MemMobile='" + strMemMobile + "' ").Tables[0];if (dtMem.Rows.Count > 0)//执行激活(只有系统中的会员才能激活){string getAuthorize = GetAuthorize();if (getAuthorize != ""){getAuthorize = "[" + getAuthorize + "]";Newtonsoft.Json.Linq.JArray javascript = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(getAuthorize);Newtonsoft.Json.Linq.JObject obj = (Newtonsoft.Json.Linq.JObject)javascript[0];if (obj["access_token"] != null && obj["access_token"].ToString() != ""){access_token = obj["access_token"].ToString(); }if (!string.IsNullOrEmpty(strCardCode) && !string.IsNullOrEmpty(strCardId)){string postData = "{";postData += "\"membership_number\": \"" + strMemMobile + "\",";postData += "\"code\": \"" + strCardCode + "\",";postData += "\"card_id\": \"" + strCardId + "\"";postData += "}";string postUrl = "https://api./card/membercard/activate?access_token=" + access_token;string result = PostWebRequest(postUrl, postData);if (!string.IsNullOrEmpty(result)){result = "[" + result + "]";Newtonsoft.Json.Linq.JArray cardResult = (Newtonsoft.Json.Linq.JArray)JsonConvert.DeserializeObject(result);Newtonsoft.Json.Linq.JObject cardObj = (Newtonsoft.Json.Linq.JObject)cardResult[0];if (cardObj["errmsg"] != null && cardObj["errmsg"].ToString() != ""){if (cardObj["errmsg"].ToString() == "ok"){flag = 1;}else{flag = -1;}}}}}}else//禁止激活 {flag = -2;}}else{flag = -1;}}catch (Exception ex){LogError(ex);flag = -1;}Context.Response.Write(flag);}#endregion

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。