欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf

    • 资源ID:34237785       资源大小:498.64KB        全文页数:32页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf

    微信接口开发公众号开发经验分享接口开发案例代码微信媒体图片下载 string mediaid=;/上传素材得到的 mediaid string accesstoken=wxAPI.GetAccessTokenCachesql(); string url=http:/ WebClient MyClient = new WebClient(); MyClient.DownloadFile(url, Server.MapPath(UpFiles/ +mediaid+.jpg); /保存临时图片公众号微支付接口操作步骤1.支付配置,如下面一笑脸所讲2.通过统一下单返回返回 prepay_id, 即将订单信息提交给统一下单接口,并返回支付接口给的统一支付ID 即 prepay_id,其中payback.aspx /支付成功回调地址或是支付成功处理页面例如: string sql = select * from shop_jiayuan_paylist where order_sn= + ordersn + ;Socut.Reader dr = new Socut.Reader(sql);string stuid = , SemesterID = ;string oldpayid = , oldpayidDT = ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 32 页 - - - - - - - - - if (dr.Read()stuid = drstuid.ToString().Trim();jiayuanmoney = drmoney.ToString().Trim();totalprice = jiayuanmoney; / 支付总金额SemesterID = drSemesterID.ToString().Trim();ispay = drispay.ToString().Trim();oldpayid = drpayid.ToString().Trim();oldpayidDT = drgetpayidDT.ToString().Trim();orderid = drid.ToString().Trim();dr.Close();xq = Socut.Data.ExecuteScalar(select SemesterName from Semester where SemesterID= + SemesterID).ToString().Trim();stuname = Socut.Data.ExecuteScalar(select stuname from student where stuid= + stuid).ToString().Trim();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 32 页 - - - - - - - - - / 开始获取统一下单payID if (ispay = 0)/ 判断 oldpayid的时效,if (oldpayidDT != )DateTime olddt = Convert.ToDateTime(oldpayidDT);DateTime nowdt = DateTime.Now;if (olddt.AddMinutes(100) nowdt)/表示此 payid已过期需要重新获取oldpayid = ;/ 还未支付,调起支付接口-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 32 页 - - - - - - - - - if (ispay = 0)string URL = https:/ sbXml = new StringBuilder();/ Response.Write(123); return;string xmlattach = pay;string dealbody = 订单支付: + ordersn;string dealdetail = 支付订单号: + ordersn;string notify_url = http:/ + XPFunction.GetAppKey(domain) + /jiayuan/payback.aspx; /支付成功回调地址或是支付成功处理页面string paywxh = wxh;string payOrderNO = ordersn; / 订单号string paymoney = Convert.ToString(int)(Convert.ToDouble(totalprice) * 100);/以分为单位的支付金额if (oldpayid = ) /oldpayid = 未获取过 payid或已经过期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 32 页 - - - - - - - - - sbXml.AppendLine();sbXml.AppendLine();sbXml.AppendLine();/附加数据, 在查询API 和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据sbXml.AppendLine(); /商品或支付单简要描述sbXml.AppendLine(); /商品名称明细列表sbXml.AppendLine( + wxAPI.MCH_ID + ); / 商户号sbXml.AppendLine(); /随机字符串sbXml.AppendLine(); / 回调地址sbXml.AppendLine(); / 发起支付的用户OPENIDsbXml.AppendLine( + payOrderNO + ); / 商户订单号自己设定不得重复,二次支付时使用同一单号sbXml.AppendLine();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 32 页 - - - - - - - - - sbXml.AppendLine( + paymoney + ); / 订单总金额单位为分只能提交整数sbXml.AppendLine(); / 接口调用类型/获取统一下单sign-string arrtmp = new string12;arrtmp0 = appid= + wxAPI.AppID;arrtmp1 = attach= + xmlattach;arrtmp2 = body= + dealbody;arrtmp3 = mch_id= + wxAPI.MCH_ID;arrtmp4 = nonce_str= + wxAPI.nonceStr;arrtmp5 = notify_url= + notify_url;arrtmp6 = openid= + paywxh;arrtmp7 = out_trade_no= + payOrderNO; /支付订单号arrtmp8 = spbill_create_ip= + XPFunction.GetClientIP();arrtmp9 = total_fee= + paymoney;arrtmp10 = trade_type=JSAPI;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 32 页 - - - - - - - - - arrtmp11 = detail= + dealdetail;Array.Sort(arrtmp);string tmpStr = string.Join(&, arrtmp);tmpStr = tmpStr + &key= + wxAPI.APIkey;string sign = XPFunction.MD5(tmpStr).ToUpper();/获取统一下单sign- sbXml.AppendLine( + sign + );sbXml.AppendLine();/ 读取 payidDataSet ds = new DataSet();ds.ReadXml(wxAPI.PostWebRequestStream(URL, sbXml.ToString();/Response.Write(ds.Tables0.Rows00.ToString().Trim().ToUpper();if (ds.Tables0.Rows00.ToString().Trim().ToUpper() = SUCCESS)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 32 页 - - - - - - - - - if (ds.Tables0.Rows06.ToString().Trim().ToUpper() = SUCCESS)PAYID = ds.Tables0.Rows07.ToString(); / 读取 payidSocut.Data.ExecuteNonQuery(update shop_jiayuan_paylist set payid= + PAYID + ,getpayidDT= + DateTime.Now.ToString() + where id= + orderid); / 记录此订单的支付ID,二次调用时不再重新获取elsePAYID = ;/获取失败elsePAYID = oldpayid;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 32 页 - - - - - - - - - if (PAYID != )/获取支付接口的sign-string arrtmp2 = new string5;arrtmp20 = appId= + wxAPI.AppID;arrtmp21 = timeStamp= + wxAPI.timestamp;arrtmp22 = nonceStr= + wxAPI.nonceStr;arrtmp23 = package=prepay_id= + PAYID;arrtmp24 = signType=MD5;Array.Sort(arrtmp2);string tmpStr2 = string.Join(&, arrtmp2);tmpStr2 = tmpStr2 + &key= + wxAPI.APIkey;WXPaysign = XPFunction.MD5(tmpStr2).ToUpper();/获取支付接口的sign-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 32 页 - - - - - - - - - else / 支付接口调用失败WXPaysign = ;3. 通过调用JS接口wx.chooseWXPay接口调用方法如下:支付按钮 wxpay, 单击时执行 savepay2()的方法function savepay2() var signtxt = ; if (signtxt = ) alert( 支付失败 ,请重试! ); return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 32 页 - - - - - - - - - / 微信支付wx.chooseWXPay( timestamp: , / 支付签名时间戳,注意微信jssdk 中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S 字符nonceStr: , / 支付签名随机串,不长于32 位package: prepay_id=, / 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=*)signType: MD5, / 签名方式,默认为SHA1 ,使用新版支付需传入MD5 paySign: , / 支付签名success: function (res) / 支付成功后的回调函数alert( 支付成功! ); location.href = uorderdetail.aspx?orderid=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 32 页 - - - - - - - - - ); ; 公众平台支付接口配置微信模板消息发送public static string sendJifenMBmessage(string wxh,string usernickname,string url,string jftype,string jfdesc,string jf) string posturl = https:/ + wxAPI.GetAccessTokenCachesql(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 32 页 - - - - - - - - - string sendcode = ; string tozhangguimsg = ;立即成为掌柜,可以积分翻倍,你现在是小二,离掌柜还差一步之遥; string iszhanggui = Socut.Data.ExecuteScalar(select iszhanggui from wxuser where wxh= + wxh + ).ToString().Trim(); string jfsum = Socut.Data.ExecuteScalar(select jf from wxuser where wxh= + wxh + ).ToString().Trim(); if(iszhanggui=1) tozhangguimsg = ; /1 表示已经是掌柜,无须再提示此信息 sendcode+=touser:+wxh+,; sendcode+=template_id:NklcfxbaOuDRxflfaVoi_vNDjwGQtHkQdWpM9EGyP4A,; sendcode+=url:+url+,; sendcode+=topcolor:#FF0000,; sendcode+=data:; sendcode+=first: ; sendcode+=value:+jfdesc+,; sendcode+=color:#ff0000,; sendcode+=account:; sendcode+=value:+usernickname+,; sendcode+=color:#173177,; sendcode += time:; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 32 页 - - - - - - - - - sendcode += value: + DateTime.Now.ToLongDateString() + ,; sendcode += color:#173177,; sendcode += type:; sendcode += value: + jftype + ,; sendcode += color:#173177,; sendcode += creditChange:; sendcode += value: 到账,; sendcode += color:,; sendcode += number:; sendcode += value:+jf+,; sendcode += color:#173177,; sendcode += creditName:; sendcode += value: 积分,; sendcode += color:,; sendcode += amount:; sendcode += value: + jfsum + ,; sendcode += color:#173177,; sendcode+=remark:; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 32 页 - - - - - - - - - sendcode += value: 你也可以点击下方菜单 -我的账户,随时提出账户余额+tozhangguimsg+,; sendcode+=color:#173177; sendcode+=; string retxt = wxAPI.PostWebRequest(posturl, sendcode); return retxt; /return sendcode; 微信 JS接口【自定义分享等】接入1.导入名称空间using System.Text.RegularExpressions;using System.IO;using System.Text;using System.Net;$(document).ready(function () var timtmp = $(#L_timestamp).text(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 32 页 - - - - - - - - - var signature0 = $(#L_signature).text(); var appid0 = $(#L_appid).text();/L_appid wx.config( debug: false, / 开启调试模式 ,调用的所有 api 的返回值会在客户端alert 出来,若要查看传入的参数,可以在pc 端打开,参数信息会通过log 打出,仅在 pc 端时才会打印。appId: appid0, / 必填,公众号的唯一标识timestamp: timtmp, / 必填,生成签名的时间戳nonceStr: abc, / 必填,生成签名的随机串signature: signature0,/ 必填,签名,见附录1 jsApiList: onMenuShareTimeline, onMenuShareAppMessage, hideMenuItems, showMenuItems / 必填,需要使用的JS接口列表,所有 JS接口列表见附录 2 ); wx.ready(function () / 隐藏的菜单项wx.hideMenuItems( menuList: menuItem:exposeArticle, menuItem:share:qq / 要隐藏的菜单项,所有menu 项见附录 3 ); / 显示的菜单项wx.showMenuItems( 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 32 页 - - - - - - - - - menuList: menuItem:profile, menuItem:addContact / 要显示的菜单项,所有menu项见附录 3 ); /alert( 恭喜您,成功啦 !); var sharetitle = $(#L_title).text();/ 分享标题var sharelink = $(#L_url).text();/ 分享的链接var shareimgUrl = $(#L_imgurl).text();/ 分享的图标var sharedesc = $(#L_desc).text(); /分享给朋友的描述/ 分享到朋友圈wx.onMenuShareTimeline( title: sharetitle, / 分享标题link: sharelink, / 分享链接imgUrl: shareimgUrl, / 分享图标success: function () alert(分享好了 ); / 用户确认分享后执行的回调函数, cancel: function () alert(没分享哟 ); / 用户取消分享后执行的回调函数 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 32 页 - - - - - - - - - wx.onMenuShareAppMessage( title: sharetitle, / 分享标题desc: sharedesc, / 分享描述link: sharelink, / 分享链接imgUrl: shareimgUrl, / 分享图标type: , / 分享类型 ,music、video 或 link,不填默认为 link dataUrl: , / 如果 type 是 music 或 video,则要提供数据链接,默认为空success: function () alert(分享好了 ); / 用户确认分享后执行的回调函数, cancel: function () alert(没分享哟 ); / 用户取消分享后执行的回调函数 ); ); wx.error(function (res) alert( 配置失败 ); ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 32 页 - - - - - - - - - ); 后台代码 CS / 获取 wx.config 中的 signature protected string GetSignature() string Signature = ; string noncestr = abc;/ 该值可自定义,但必须与wx.config 中的 noncestr 相同string url = Request.Url.ToString().Trim(); string s1 = jsapi_ticket= + GetTicket() + &noncestr= + noncestr + tamp= + this.L_timestamp.Text.Trim() + &url=+url; Signature= FormsAuthentication.HashPasswordForStoringInConfigFile(s1, SHA1); return Signature; / 获取 JS接口的接入验证 Ticket,此方法需要用到access_token protected string GetTicket() string REticket = ; string sql = select top 1 * from menus where aid=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 32 页 - - - - - - - - - string APPID = , APPSERT = ;/wxde3d0d437861ace2 1aba1b327fd3c0fb305264947a939caa Socut.Reader dr = new Socut.Reader(sql); if (dr.Read() APPID = drAppid.ToString().Trim(); APPSERT = drAppSert.ToString().Trim(); dr.Close(); string ticket = , ticket_dt = ; ticket = Socut.Data.ExecuteScalar(select ticket from accesstoken where id=1).ToString().Trim(); ticket_dt = Socut.Data.ExecuteScalar(select ticket_dt from accesstoken where id=1).ToString().Trim(); DateTime tickolddt = Convert.ToDateTime(ticket_dt); if (tickolddt.AddSeconds(7100) DateTime.Now) string acctoken = , tokendt = ; acctoken = Socut.Data.ExecuteScalar(select accesstoken from accesstoken where id=1).ToString().Trim(); tokendt = Socut.Data.ExecuteScalar(select dt from accesstoken where id=1).ToString().Trim(); DateTime olddt = Convert.ToDateTime(tokendt); if (olddt.AddSeconds(7100) =0) /access_token 过期 string accton = GetAccessToken(APPID, APPSERT); acctoken = accton.Substring(accton.IndexOf(:) + 3, accton.IndexOf(,) - accton.IndexOf(:) - 3); Socut.Data.ExecuteNonQuery(update accesstoken set getcount=getcount+1, accesstoken= + acctoken + ,dt= + DateTime.Now.ToString() + where id=1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 32 页 - - - - - - - - - req = (HttpWebRequest)HttpWebRequest.Create(https:/ + acctoken + &type=jsapi); req.Method = GET; response = (System.Net.HttpWebResponse)req.GetResponse(); responseStream = response.GetResponseStream(); readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8); retext = readStream.ReadToEnd().ToString(); readStream.Close(); REticket = retext.Substring(retext.IndexOf(ticket) + 9, retext.IndexOf(,expires_in) - (retext.IndexOf(ticket) + 9); ; Socut.Data.ExecuteNonQuery(update accesstoken set getticketCount=getticketCount+1, ticket= + REticket + ,dt= + DateTime.Now.ToString() + where id=1); else REticket = ticket; return REticket; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 32 页 - - - - - - - - - 给用户发送及时信息注:此功能需要获取ACCESSTOKEN的方法加入1.定义下面的方法两个参数,一个提交URL ,一个发送信息的完整JSON private string PostWebRequest(string postUrl, string msgInfo) string returnValue = string.Empty; try byte byteData = Encoding.UTF8.GetBytes(msgInfo); Uri uri = new Uri(postUrl); HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(uri); webReq.Method = POST; webReq.ContentType = application/x-www-form-urlencoded; webReq.ContentLength = byteData.Length; / 定义 Stream信息 Stream stream = webReq.GetRequestStream(); stream.Write(byteData, 0, byteData.Length); stream.Close(); / 获取返回信息 HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); StreamReader streamReader = new StreamReader(response.GetResponseStream(), Encoding.Default); returnValue = streamReader.ReadToEnd(); / 关闭信息 streamReader.Close(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 32 页 - - - - - - - - - response.Close(); stream.Close(); catch (Exception ex) /lblResult.Text = ex.ToString(); return returnValue; 2.开始发送 string postUrl = https:/ / 获取 ACCESSTOKEN 此处是将 ACCESSTOKEN放在数据库中,避免获取次数过多 string sql = select top 1 * from menus where aid=1; string APPID = , APPSERT = ;/wxde3d0d437861ace2 1aba1b327fd3c0fb305264947a939caa Socut.Reader dr = new Socut.Reader(sql); if (dr.Read() APPID = drAppid.ToString().Trim(); APPSERT = drAppSert.ToString().Trim(); dr.Close(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 32 页 - - - - - - - - - string acctoken = , tokendt = ; acctoken = Socut.Data.ExecuteScalar(select accesstoken from accesstoken where id=1).ToString().Trim(); tokendt = Socut.Data.ExecuteScalar(select dt from accesstoken where id=1).ToString().Trim(); DateTime olddt = Convert.ToDateTime(tokendt); if (olddt.AddSeconds(7100) DateTime.Now) string accton = GetAccessToken(APPID, APPSERT); acctoken = accton.Substring(accton.IndexOf(:) + 3, accton.IndexOf(,) - accton.IndexOf(:) - 3); Socut.Data.ExecuteNonQuery(update accesstoken set accesstoken= + acctoken + ,dt= + DateTime.Now.ToString() + where id=1); / 获取 ACCESSTOKEN-END postUrl = string.Format(postUrl,acctoken); string senduseropenid = oYPoNuE4gBo39dfpxQdMdiUfUCfs; / 要发送信息用户的OPENID string sendMsg = this.Txt_msg.Text.Trim(); / 要发送的内容 string menuInfo = touser: +senduseropenid+, ; menuInfo += msgtype: text, ; menuInfo += text: content: +sendMsg+ ; lblResult.Text = 执行结果: + PostWebRequest(postUrl, menuInfo); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 32 页 - - - - - - - - - 微信通过网页获得访问用户的OPENID,详细参数微信接口文档注:需要公众平台开发模式下设置(OAuth2.0 网页授权(仅关注者才能授权)1.导入名称空间using System.Text.RegularExpressions; using System.IO; using System.Text; using System.Net; 2.建立一个获取页面如getopid.aspx,通过该页面获取code,后台代码如下string getcodeurl = https:/ / 获取 code 的提交地址string APPID = , APPSERT = ;/wxde3d0d4

    注意事项

    本文(微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开