版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信接口开发公众号开发经验分享接口开发案例代码微信媒体图片下载 string mediaid=;/上传素材得到的mediaid string accesstoken=wxAPI.GetAccessTokenCachesql(); string url=" WebClient MyClient = new WebClient();
2、160; MyClient.DownloadFile(url, Server.MapPath("UpFiles/" +mediaid+".jpg"); /保存临时图片公众号微支付接口操作步骤1.支付配置,如下面一笑脸所讲2.通过统一下单返回返回prepay_id,即将订单信息提交给统一下单接口,并返回支付接口给的统一支付ID即prepay_id,其中payback.aspx /支付成功回调地址或是支付成功处理页面 例如: string sq
3、l = "select * from shop_jiayuan_paylist where order_sn='" + ordersn + "'" Socut.Reader dr = new Socut.Reader(sql); string stuid = "", SemesterID = ""
4、 string oldpayid = "", oldpayidDT = "" if (dr.Read() stuid = dr"stuid".ToString().Trim();
5、160; jiayuanmoney = dr"money".ToString().Trim(); totalprice = jiayuanmoney; /支付总金额 SemesterID = dr"SemesterID".ToString().Trim();
6、 ispay = dr"ispay".ToString().Trim(); oldpayid = dr"payid".ToString().Trim(); oldpayidDT = dr"getpayidDT".ToStri
7、ng().Trim(); orderid = dr"id".ToString().Trim(); dr.Close(); xq = Socut.Data.ExecuteScalar("select Semeste
8、rName from Semester where SemesterID=" + SemesterID).ToString().Trim(); stuname = Socut.Data.ExecuteScalar("select stuname from student where stuid=" + stuid).ToString().Trim(); /开始获取统一下单payID
9、60; if (ispay = "0") /判断oldpayid的时效,
10、 if (oldpayidDT != "") DateTime olddt = Convert.ToDateTime(oldpayidDT);
11、60; DateTime nowdt = DateTime.Now; if (olddt.AddMinutes(100) < nowdt)/表示此payid已过期需要重新获取 &
12、#160; oldpayid = "" /还未支付,调起支付接口- if (ispay = &
13、quot;0") string URL = "
14、0; StringBuilder sbXml = new StringBuilder(); / Response.Write("<xml><appid>123</appid></xml>"); return; string xmlattach
15、= "pay" string dealbody = "订单支付:" + ordersn; string dealdetail = "支付订单号:" + ordersn;
16、 string notify_url = "http:/" + XPFunction.GetAppKey("domain") + "/jiayuan/payback.aspx" /支付成功回调地址或是支付成功处理页面 string paywxh = wxh;
17、60; string payOrderNO = ordersn; /订单号 string paymoney = Convert.ToString(int)(Convert.ToDouble(totalprice) * 100);/以分为单位的支付金额 if (oldpa
18、yid = "") /oldpayid = ""未获取过payid或已经过期 sbXml.AppendLine("<xml>");
19、; sbXml.AppendLine("<appid><!CDATA" + wxAPI.AppID + "></appid>"); sbXml.AppendLine("<attach><!CDATA" + xmlattach + &qu
20、ot;></attach>");/附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 sbXml.AppendLine("<body><!CDATA" + dealbody + "></body>"); /商品或支付单简要描述 &
21、#160; sbXml.AppendLine("<detail><!CDATA" + dealdetail + "></detail>"); /商品名称明细列表 sbXml.AppendLine("<mch_id>" + wxAPI.MCH_
22、ID + "</mch_id>"); /商户号 sbXml.AppendLine("<nonce_str><!CDATA" + wxAPI.nonceStr + "></nonce_str>"); /随机字符串
23、60; sbXml.AppendLine("<notify_url><!CDATA" + notify_url + "></notify_url>"); /回调地址 sbXml.AppendLine("<openid><!CDATA" +
24、 paywxh + "></openid>"); /发起支付的用户OPENID sbXml.AppendLine("<out_trade_no>" + payOrderNO + "</out_trade_no>"); /商户订单号 自己设定不得重复,二次支付时使用同一单号
25、0; sbXml.AppendLine("<spbill_create_ip><!CDATA" + XPFunction.GetClientIP() + "></spbill_create_ip>"); sbXml.AppendLi
26、ne("<total_fee>" + paymoney + "</total_fee>"); /订单总金额 单位为分 只能提交整数 sbXml.AppendLine("<trade_type><!CDATAJSAPI></trade_type>"); /接口调用类型
27、; /获取统一下单sign- string arrtmp = new string12; arrtmp0 = "app
28、id=" + wxAPI.AppID; arrtmp1 = "attach=" + xmlattach; arrtmp2 = "body=" + dealbody;
29、 arrtmp3 = "mch_id=" + wxAPI.MCH_ID; arrtmp4 = "nonce_str=" + wxAPI.nonceStr; &
30、#160; arrtmp5 = "notify_url=" + notify_url; arrtmp6 = "openid=" + paywxh; arrtmp7 = "out_trade_
31、no=" + payOrderNO; /支付订单号 arrtmp8 = "spbill_create_ip=" + XPFunction.GetClientIP(); arrtmp9 = "total_fee=" +
32、paymoney; arrtmp10 = "trade_type=JSAPI" arrtmp11 = "detail=" + dealdetail;
33、; Array.Sort(arrtmp); string tmpStr = string.Join("&", arrtmp); tmpStr = tmpSt
34、r + "&key=" + wxAPI.APIkey; string sign = XPFunction.MD5(tmpStr).ToUpper(); /获取统一下单sign-
35、0; sbXml.AppendLine("<sign>" + sign + "</sign>"); sbXml.AppendLine("</xml>"); &
36、#160; /读取payid DataSet ds = new DataSet(); ds.ReadXml(wxAPI.PostWebRequ
37、estStream(URL, sbXml.ToString(); /Response.Write(ds.Tables0.Rows00.ToString().Trim().ToUpper(); if (ds.Tables0.Rows00.ToString().Trim(
38、).ToUpper() = "SUCCESS") if (ds.Tables0.Rows06.ToString().Trim().ToUpper() = "SUCCESS")
39、; PAYID = ds.Tables0.Rows07.ToString(); /读取payid &
40、#160; Socut.Data.ExecuteNonQuery("update shop_jiayuan_paylist set payid='" + PAYID + "',getpayidDT='" + DateTime.Now.ToString() + "' where id=" + orderid); /记录此订单的支付ID,二次调用时不再重新获取
41、 else &
42、#160; PAYID = ""/获取失败
43、60; else PAYID = oldpayid;
44、160; if (PAYID != "") /获取支付接口的sign-
45、0; string arrtmp2 = new string5; arrtmp20 = "appId=" + wxAPI.AppID;
46、 arrtmp21 = "timeStamp=" + wxAPI.timestamp; arrtmp22 = "nonceStr=" + wxAPI.nonceStr; arrtmp23
47、= "package=prepay_id=" + PAYID; arrtmp24 = "signType=MD5" Array.Sort(arrtmp2); &
48、#160; string tmpStr2 = string.Join("&", arrtmp2); tmpStr2 = tmpStr2 + "&key=" + wxAPI.APIkey;
49、; WXPaysign = XPFunction.MD5(tmpStr2).ToUpper(); /获取支付接口的sign- &
50、#160; else /支付接口调用失败 WXPaysign = ""
51、; 3. 通过调用JS接口wx.chooseWXPay接口调用方法如下: 支付按钮wxpay,单击时执行savepay2()的方法<input id="wxpay" name="wxpay" type="button" value="立即支付" onclick="savepay2();" />function
52、savepay2() var signtxt = '<%=WXPaysign%>' if (signtxt = "") alert("支付失败,请重试!");
53、 return; /微信支付 wx.chooseWXPay(
54、 timestamp: '<%=wxAPI.timestamp%>', / 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 nonceStr: '<%=wxAPI.nonceStr%>', / 支付签名随机串,不长于
55、32 位 package: 'prepay_id=<%=PAYID%>', / 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=*) signType: 'MD5', / 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
56、160; paySign: '<%=WXPaysign%>', / 支付签名 success: function (res) / 支付成功后的回调函数
57、160; alert("支付成功!"); location.href = "uorderdetail.aspx?orderid=<%=orderid%>" );
58、 ;公众平台支付接口配置微信模板消息发送public static string sendJifenMBmessage(string wxh,string usernickname,string url,string jftype,string jfdesc,string jf) string posturl = " + wxAPI.GetAccessTokenCachesql(); string sendcode = "&qu
59、ot; string tozhangguimsg = ";立即成为掌柜,可以积分翻倍,你现在是小二,离掌柜还差一步之遥" string iszhanggui = Socut.Data.ExecuteScalar("select iszhanggui from wxuser where wxh='" + wxh + "'").ToString().Trim();
60、 string jfsum = Socut.Data.ExecuteScalar("select jf from wxuser where wxh='" + wxh + "'").ToString().Trim(); if(iszhanggui="1") tozhangguimsg = "" /1表
61、示已经是掌柜,无须再提示此信息 sendcode+=""touser":""+wxh+""," sendcode+=""template_id":"NklcfxbaOuDRxflfaVoi_vNDjwGQtHkQdWpM9
62、EGyP4A"," sendcode+=""url":""+url+""," sendcode+=""topcolor":"#FF0000"," sendcode+=""data&
63、quot;:" sendcode+=""first": " sendcode+=""value":""+jfdesc+""," &
64、#160; sendcode+=""color":"#ff0000"," sendcode+=""account":"
65、; sendcode+=""value":""+usernickname+""," sendcode+=""color":"#173177",
66、" sendcode += ""time":" sendcode += ""value":"" + DateTime.Now.ToLongDateString() + &q
67、uot;"," sendcode += ""color":"#173177"," sendcode += ""type":"
68、 sendcode += ""value":"" + jftype + ""," sendcode += ""color":"#173177","
69、 sendcode += ""creditChange":" sendcode += ""value":"到账","
70、 sendcode += ""color":""," sendcode += ""number":" &
71、#160; sendcode += ""value":""+jf+""," sendcode += ""color":"#173177","
72、160; sendcode += ""creditName":" sendcode += ""value":"积分"," sendcode += "&
73、quot;color":""," sendcode += ""amount":" sendcode += ""value":"" + jfsu
74、m + ""," sendcode += ""color":"#173177","
75、 sendcode+=""remark":" sendcode += ""value":"你也可以点击下方菜单-我的账户,随时提出账户余额"+tozhangguimsg+""," &
76、#160; sendcode+=""color":"#173177"" sendcode+=""
77、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 ()
78、60; var timtmp = $("#L_timestamp").text(); var signature0 = $("#L_signature").text();
79、60; var appid0 = $("#L_appid").text();/L_appid wx.config( debug: false, / 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
80、60; appId: appid0, / 必填,公众号的唯一标识 timestamp: timtmp, / 必填,生成签名的时间戳 nonceStr: 'abc', / 必填,生成签名的随机串 signature: signa
81、ture0,/ 必填,签名,见附录1 jsApiList: "onMenuShareTimeline", "onMenuShareAppMessage", "hideMenuItems", "showMenuItems" / 必填,需要使用的JS接口列表,所有JS接口列表见附录2 );
82、 wx.ready(function () /隐藏的菜单项 wx.hideMenuItems( menuList: "me
83、nuItem:exposeArticle", "menuItem:share:qq" / 要隐藏的菜单项,所有menu项见附录3 ); /显示的菜单项 wx.showMenuItems(
84、 menuList: "menuItem:profile", "menuItem:addContact" / 要显示的菜单项,所有menu项见附录3 ); /alert("恭喜您,成功啦!");
85、 var sharetitle = $("#L_title").text();/分享标题 var sharelink = $("#L_url").text();/分享的链接 var shareimgUrl = $("#L_imgurl").text()
86、;/分享的图标 var sharedesc = $("#L_desc").text(); /分享给朋友的描述 /分享到朋友圈 wx.onMenuShareTimeline(
87、0; title: sharetitle, / 分享标题 link: sharelink, / 分享链接 imgUrl: shareimgUrl, / 分享图标
88、; success: function () alert("分享好了"); / 用户确认分享后执行的回调函数
89、 , cancel: function () alert("没分享哟"); /
90、用户取消分享后执行的回调函数 ); wx.onMenuShareAppMessage( title:
91、sharetitle, / 分享标题 desc: sharedesc, / 分享描述 link: sharelink, / 分享链接 imgUrl: shareimgUrl, / 分享图
92、标 type: '', / 分享类型,music、video或link,不填默认为link dataUrl: '', / 如果type是music或video,则要提供数据链接,默认为空
93、0; success: function () alert("分享好了"); / 用户确认分享后执行的回调函数
94、; , cancel: function () alert("没分享哟"); /
95、 用户取消分享后执行的回调函数 ); ); wx.error(function (res)
96、; alert("配置失败"); ); );后台代码CS/获取wx.config中的signature protected string GetSignature() string Signature = ""
97、; string noncestr = "abc"/该值可自定义,但必须与wx.config中的noncestr相同 string url = Request.Url.ToString().Trim(); string s1 = "jsapi_ticket=" + GetTicket() + "&noncestr=" + noncestr + "×
98、tamp=" + this.L_timestamp.Text.Trim() + "&url="+url; Signature= FormsAuthentication.HashPasswordForStoringInConfigFile(s1, "SHA1"); return Signature; /获取JS接口的接入验证Ticket,此方法需要用到access_token
99、160; protected string GetTicket() string REticket = "" string sql = "select top 1 * from menus where aid=1" string APPID = "", APPSERT = ""/wxde3d0d437861ace2
100、 1aba1b327fd3c0fb305264947a939caa Socut.Reader dr = new Socut.Reader(sql); if (dr.Read() APPID = dr"Appid".ToString().Trim();
101、APPSERT = dr"AppSert".ToString().Trim(); dr.Close(); string ticket = "", ticket_dt = "" ticket = Socut.Data.ExecuteScalar("select ticket from ac
102、cesstoken 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 (ti
103、ckolddt.AddSeconds(7100) < DateTime.Now) string acctoken = "", tokendt = "" acctoken = Socut.Data.ExecuteScalar("select accesstoken from accesstoken where id=1&qu
104、ot;).ToString().Trim(); tokendt = Socut.Data.ExecuteScalar("select dt from accesstoken where id=1").ToString().Trim(); DateTime olddt = Convert.ToDateTime(tokendt); if
105、 (olddt.AddSeconds(7100) < DateTime.Now) string accton = GetAccessToken(APPID, APPSERT); acctoken = accton.Substring(accton.IndexOf("":
106、"") + 3, accton.IndexOf("","") - accton.IndexOf("":"") - 3); Socut.Data.ExecuteNonQuery("update accesstoken set getcount=getcount+1, accesstoken='" + acctoken + "',dt='
107、" + DateTime.Now.ToString() + "' where id=1"); /Response.Write(acctoken); /return "abccccc" /GET提交方法开始获取ti
108、cket HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(" req.Method = "GET" System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)req.GetResp
109、onse(); Stream responseStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8); string retext = readStream.ReadToEnd().ToString(); &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5G国际合作与竞争格局分析
- 建筑专业消防分包合同范本
- 2024年度物流运输合同(运输版)
- 甲乙合同范本6
- 2024年度版权买卖合同标的版权作品类型与买卖价格
- 饼干做法课程设计
- 餐馆装修预算布置方案
- 餐馆点餐系统课程设计
- 餐馆外观定制方案
- 老年家庭照护机器人技术
- 2024年代理要账居间协议合同范本
- 2024污水处理厂运营合同书(范本)
- 2024-2030年中国农业卫星数据服务行业发展战略与投资规划分析报告
- 银行办公大楼物业服务投标方案投标文件(技术方案)
- 网络信息安全管理作业指导书
- 《机械设计基础》期末考试试卷六
- (一模)宁波市2024学年第一学期高考模拟考试 化学试卷(含答案)
- GB/T 44481-2024建筑消防设施检测技术规范
- 2024年炉外精炼工(初级)职业技能鉴定考试题库(含答案)
- 人教版七年级生物上册第二单元第二章第二节脊椎动物二两栖动物和爬行动物课件
- 中国医学科学院肿瘤医院医用直线加速器维保项目招标文件
评论
0/150
提交评论