微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享——接口開發(fā)案例代碼.doc_第1頁
微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享——接口開發(fā)案例代碼.doc_第2頁
微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享——接口開發(fā)案例代碼.doc_第3頁
微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享——接口開發(fā)案例代碼.doc_第4頁
微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享——接口開發(fā)案例代碼.doc_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

微信接口開發(fā)公眾號開發(fā)經(jīng)驗分享接口開發(fā)案例代碼微信媒體圖片下載 string mediaid=;/上傳素材得到的mediaid string accesstoken=wxAPI.GetAccessTokenCachesql(); string url=/cgi-bin/media/get?access_token=+accesstoken+&media_id=+mediaid; WebClient MyClient = new WebClient(); MyClient.DownloadFile(url, Server.MapPath(UpFiles/ +mediaid+.jpg); /保存臨時圖片公眾號微支付接口操作步驟1.支付配置,如下面一笑臉所講2.通過統(tǒng)一下單返回返回prepay_id,即將訂單信息提交給統(tǒng)一下單接口,并返回支付接口給的統(tǒng)一支付ID即prepay_id,其中payback.aspx /支付成功回調(diào)地址或是支付成功處理頁面 例如: string sql = select * from shop_jiayuan_paylist where order_sn= + ordersn + ; Socut.Reader dr = new Socut.Reader(sql); string stuid = , SemesterID = ; string oldpayid = , oldpayidDT = ; 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(); /開始獲取統(tǒng)一下單payID if (ispay = 0) /判斷oldpayid的時效, if (oldpayidDT != ) DateTime olddt = Convert.ToDateTime(oldpayidDT); DateTime nowdt = DateTime.Now; if (olddt.AddMinutes(100) nowdt)/表示此payid已過期需要重新獲取 oldpayid = ; /還未支付,調(diào)起支付接口- if (ispay = 0) string URL = /pay/unifiedorder; StringBuilder 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; /支付成功回調(diào)地址或是支付成功處理頁面 string paywxh = wxh; string payOrderNO = ordersn; /訂單號 string paymoney = Convert.ToString(int)(Convert.ToDouble(totalprice) * 100);/以分為單位的支付金額 if (oldpayid = ) /oldpayid = 未獲取過payid或已經(jīng)過期 sbXml.AppendLine(); sbXml.AppendLine(); sbXml.AppendLine();/附加數(shù)據(jù),在查詢API和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數(shù)據(jù) sbXml.AppendLine(); /商品或支付單簡要描述 sbXml.AppendLine(); /商品名稱明細列表 sbXml.AppendLine( + wxAPI.MCH_ID + ); /商戶號 sbXml.AppendLine(); /隨機字符串 sbXml.AppendLine(); /回調(diào)地址 sbXml.AppendLine(); /發(fā)起支付的用戶OPENID sbXml.AppendLine( + payOrderNO + ); /商戶訂單號 自己設定不得重復,二次支付時使用同一單號 sbXml.AppendLine(); sbXml.AppendLine( + paymoney + ); /訂單總金額 單位為分 只能提交整數(shù) sbXml.AppendLine(); /接口調(diào)用類型 /獲取統(tǒng)一下單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; arrtmp11 = detail= + dealdetail; Array.Sort(arrtmp); string tmpStr = string.Join(&, arrtmp); tmpStr = tmpStr + &key= + wxAPI.APIkey; string sign = XPFunction.MD5(tmpStr).ToUpper(); /獲取統(tǒng)一下單sign- sbXml.AppendLine( + sign + ); sbXml.AppendLine(); /讀取payid DataSet 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) if (ds.Tables0.Rows06.ToString().Trim().ToUpper() = SUCCESS) PAYID = ds.Tables0.Rows07.ToString(); /讀取payid Socut.Data.ExecuteNonQuery(update shop_jiayuan_paylist set payid= + PAYID + ,getpayidDT= + DateTime.Now.ToString() + where id= + orderid); /記錄此訂單的支付ID,二次調(diào)用時不再重新獲取 else PAYID = ;/獲取失敗 else PAYID = oldpayid; 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- else /支付接口調(diào)用失敗 WXPaysign = ; 3. 通過調(diào)用JS接口wx.chooseWXPay接口調(diào)用方法如下:支付按鈕wxpay,單擊時執(zhí)行savepay2()的方法function savepay2() var signtxt = ; if (signtxt = ) alert(支付失敗,請重試!); return; /微信支付 wx.chooseWXPay( timestamp: , / 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符 nonceStr: , / 支付簽名隨機串,不長于 32 位 package: prepay_id=, / 統(tǒng)一支付接口返回的prepay_id參數(shù)值,提交格式如:prepay_id=*) signType: MD5, / 簽名方式,默認為SHA1,使用新版支付需傳入MD5 paySign: , / 支付簽名 success: function (res) / 支付成功后的回調(diào)函數(shù) alert(支付成功!); location.href = uorderdetail.aspx?orderid=; ); ;公眾平臺支付接口配置微信模板消息發(fā)送public static string sendJifenMBmessage(string wxh,string usernickname,string url,string jftype,string jfdesc,string jf) string posturl = /cgi-bin/message/template/send?access_token= + wxAPI.GetAccessTokenCachesql(); string sendcode = ; string tozhangguimsg = ;立即成為掌柜,可以積分翻倍,你現(xiàn)在是小二,離掌柜還差一步之遙; 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表示已經(jīng)是掌柜,無須再提示此信息 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:; 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:; 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(); var signature0 = $(#L_signature).text(); var appid0 = $(#L_appid).text();/L_appid wx.config( debug: false, / 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過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( 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(分享好了); / 用戶確認分享后執(zhí)行的回調(diào)函數(shù) , cancel: function () alert(沒分享喲); / 用戶取消分享后執(zhí)行的回調(diào)函數(shù) ); wx.onMenuShareAppMessage( title: sharetitle, / 分享標題 desc: sharedesc, / 分享描述 link: sharelink, / 分享鏈接 imgUrl: shareimgUrl, / 分享圖標 type: , / 分享類型,music、video或link,不填默認為link dataUrl: , / 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認為空 success: function () alert(分享好了); / 用戶確認分享后執(zhí)行的回調(diào)函數(shù) , cancel: function () alert(沒分享喲); / 用戶取消分享后執(zhí)行的回調(diào)函數(shù) ); ); wx.error(function (res) alert(配置失敗); ); );后臺代碼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; 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); req = (HttpWebRequest)HttpWebRequest.Create(/cgi-bin/ticket/getticket?access_token= + acctoken + &type=jsapi); req.Method = GET; response = (System.Net.HttpWebResponse)req.GetResponse(); resp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論