微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf
《微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf》由会员分享,可在线阅读,更多相关《微信接口开发公众号开发经验分享——接口开发案例代码定义 .pdf(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微信接口开发公众号开发经验分享接口开发案例代码微信媒体图片下载 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, 即将订
2、单信息提交给统一下单接口,并返回支付接口给的统一支付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 = ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
3、- - - - - - - - - 名师精心整理 - - - - - - - 第 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().
4、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).ToStri
5、ng().Trim();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 32 页 - - - - - - - - - / 开始获取统一下单payID if (ispay = 0)/ 判断 oldpayid的时效,if (oldpayidDT != )DateTime olddt = Convert.ToDateTime(oldpayidDT);DateTime nowdt = DateTime.Now;if (olddt.AddMinutes(100) nowdt)/表示
6、此 payid已过期需要重新获取oldpayid = ;/ 还未支付,调起支付接口-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 32 页 - - - - - - - - - if (ispay = 0)string URL = https:/ sbXml = new StringBuilder();/ Response.Write(123); return;string xmlattach = pay;string dealbody = 订单支付: + ordersn
7、;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 = ) /o
8、ldpayid = 未获取过 payid或已经过期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 32 页 - - - - - - - - - sbXml.AppendLine();sbXml.AppendLine();sbXml.AppendLine();/附加数据, 在查询API 和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据sbXml.AppendLine(); /商品或支付单简要描述sbXml.AppendLine(); /商品名称明细列表sbXml
9、.AppendLine( + wxAPI.MCH_ID + ); / 商户号sbXml.AppendLine(); /随机字符串sbXml.AppendLine(); / 回调地址sbXml.AppendLine(); / 发起支付的用户OPENIDsbXml.AppendLine( + payOrderNO + ); / 商户订单号自己设定不得重复,二次支付时使用同一单号sbXml.AppendLine();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 32 页 -
10、- - - - - - - - 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;arrtm
11、p5 = 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 页,
12、共 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();d
13、s.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.Tab
14、les0.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;
15、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 32 页 - - - - - - - - - if (PAYID != )/获取支付接口的sign-string arrtmp2 = new string5;arrtmp20 = appId= + wxAPI.AppID;arrtmp21 = timeStamp= + wxAPI.timestamp;arrtmp22 = nonceStr= + wxAPI.nonceStr;arrtmp23 = package=prepay
16、_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 页 - - - - - -
17、 - - - else / 支付接口调用失败WXPaysign = ;3. 通过调用JS接口wx.chooseWXPay接口调用方法如下:支付按钮 wxpay, 单击时执行 savepay2()的方法function savepay2() var signtxt = ; if (signtxt = ) alert( 支付失败 ,请重试! ); return; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 32 页 - - - - - - - - - / 微信支付wx.
18、chooseWXPay( timestamp: , / 支付签名时间戳,注意微信jssdk 中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S 字符nonceStr: , / 支付签名随机串,不长于32 位package: prepay_id=, / 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=*)signType: MD5, / 签名方式,默认为SHA1 ,使用新版支付需传入MD5 paySign: , / 支付签名success: function (res) / 支付成功后的回调函数alert
19、( 支付成功! ); location.href = uorderdetail.aspx?orderid=; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 32 页 - - - - - - - - - ); ; 公众平台支付接口配置微信模板消息发送public static string sendJifenMBmessage(string wxh,string usernickname,string url,string jftype,string jfdesc,st
20、ring jf) string posturl = https:/ + wxAPI.GetAccessTokenCachesql(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 32 页 - - - - - - - - - string sendcode = ; string tozhangguimsg = ;立即成为掌柜,可以积分翻倍,你现在是小二,离掌柜还差一步之遥; string iszhanggui = Socut.Data.ExecuteScalar(s
21、elect 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_vNDjwG
22、QtHkQdWpM9EGyP4A,; 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:; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
23、- - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 32 页 - - - - - - - - - sendcode += value: + DateTime.Now.ToLongDateString() + ,; sendcode += color:#173177,; sendcode += type:; sendcode += value: + jftype + ,; sendcode += color:#173177,; sendcode += creditChange:; sendcode += value: 到账,; sendcode += colo
24、r:,; sendcode += number:; sendcode += value:+jf+,; sendcode += color:#173177,; sendcode += creditName:; sendcode += value: 积分,; sendcode += color:,; sendcode += amount:; sendcode += value: + jfsum + ,; sendcode += color:#173177,; sendcode+=remark:; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
25、- - - 名师精心整理 - - - - - - - 第 14 页,共 32 页 - - - - - - - - - sendcode += value: 你也可以点击下方菜单 -我的账户,随时提出账户余额+tozhangguimsg+,; sendcode+=color:#173177; sendcode+=; string retxt = wxAPI.PostWebRequest(posturl, sendcode); return retxt; /return sendcode; 微信 JS接口【自定义分享等】接入1.导入名称空间using System.Text.RegularExpr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微信接口开发公众号开发经验分享接口开发案例代码定义 2022 年微信 接口 开发 公众 经验 分享 案例 代码 定义
限制150内