![微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享——接口開發(fā)案例代碼.doc_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/b32eb949-1b71-4065-9da6-c503db4f681a/b32eb949-1b71-4065-9da6-c503db4f681a1.gif)
![微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享——接口開發(fā)案例代碼.doc_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/b32eb949-1b71-4065-9da6-c503db4f681a/b32eb949-1b71-4065-9da6-c503db4f681a2.gif)
![微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享——接口開發(fā)案例代碼.doc_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/b32eb949-1b71-4065-9da6-c503db4f681a/b32eb949-1b71-4065-9da6-c503db4f681a3.gif)
![微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享——接口開發(fā)案例代碼.doc_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/b32eb949-1b71-4065-9da6-c503db4f681a/b32eb949-1b71-4065-9da6-c503db4f681a4.gif)
![微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享——接口開發(fā)案例代碼.doc_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/2/b32eb949-1b71-4065-9da6-c503db4f681a/b32eb949-1b71-4065-9da6-c503db4f681a5.gif)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微信接口開發(fā)公眾號(hào)開發(fā)經(jīng)驗(yàn)分享接口開發(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); /保存臨時(shí)圖片公眾號(hào)微支付接口操作步驟1.支付配置,如下面一笑臉?biāo)v2.通過統(tǒng)一下單返回返回prepay_id,即將訂單信息提交給統(tǒng)一下單接口,并返回支付接口給的統(tǒng)一支付ID即prepay_id,其中payback.aspx /支付成功回調(diào)地址或是支付成功處理頁(yè)面 例如: 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的時(shí)效, 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 = 支付訂單號(hào): + ordersn; string notify_url = http:/ + XPFunction.GetAppKey(domain) + /jiayuan/payback.aspx; /支付成功回調(diào)地址或是支付成功處理頁(yè)面 string paywxh = wxh; string payOrderNO = ordersn; /訂單號(hào) 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(); /商品或支付單簡(jiǎn)要描述 sbXml.AppendLine(); /商品名稱明細(xì)列表 sbXml.AppendLine( + wxAPI.MCH_ID + ); /商戶號(hào) sbXml.AppendLine(); /隨機(jī)字符串 sbXml.AppendLine(); /回調(diào)地址 sbXml.AppendLine(); /發(fā)起支付的用戶OPENID sbXml.AppendLine( + payOrderNO + ); /商戶訂單號(hào) 自己設(shè)定不得重復(fù),二次支付時(shí)使用同一單號(hào) 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; /支付訂單號(hào) 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)用時(shí)不再重新獲取 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,單擊時(shí)執(zhí)行savepay2()的方法function savepay2() var signtxt = ; if (signtxt = ) alert(支付失敗,請(qǐng)重試!); return; /微信支付 wx.chooseWXPay( timestamp: , / 支付簽名時(shí)間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺(tái)生成簽名使用的timeStamp字段名需大寫其中的S字符 nonceStr: , / 支付簽名隨機(jī)串,不長(zhǎng)于 32 位 package: prepay_id=, / 統(tǒng)一支付接口返回的prepay_id參數(shù)值,提交格式如:prepay_id=*) signType: MD5, / 簽名方式,默認(rèn)為SHA1,使用新版支付需傳入MD5 paySign: , / 支付簽名 success: function (res) / 支付成功后的回調(diào)函數(shù) alert(支付成功!); location.href = uorderdetail.aspx?orderid=; ); ;公眾平臺(tái)支付接口配置微信模板消息發(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:你也可以點(diǎn)擊下方菜單-我的賬戶,隨時(shí)提出賬戶余額+tozhangguimsg+,; sendcode+=color:#173177; sendcode+=; string retxt = wxAPI.PostWebRequest(posturl, sendcode); return retxt; /return sendcode; 微信JS接口【自定義分享等】接入1.導(dǎo)入名稱空間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的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印。 appId: appid0, / 必填,公眾號(hào)的唯一標(biāo)識(shí) timestamp: timtmp, / 必填,生成簽名的時(shí)間戳 nonceStr: abc, / 必填,生成簽名的隨機(jī)串 signature: signature0,/ 必填,簽名,見附錄1 jsApiList: onMenuShareTimeline, onMenuShareAppMessage, hideMenuItems, showMenuItems / 必填,需要使用的JS接口列表,所有JS接口列表見附錄2 ); wx.ready(function () /隱藏的菜單項(xiàng) wx.hideMenuItems( menuList: menuItem:exposeArticle, menuItem:share:qq / 要隱藏的菜單項(xiàng),所有menu項(xiàng)見附錄3 ); /顯示的菜單項(xiàng) wx.showMenuItems( menuList: menuItem:profile, menuItem:addContact / 要顯示的菜單項(xiàng),所有menu項(xiàng)見附錄3 ); /alert(恭喜您,成功啦!); var sharetitle = $(#L_title).text();/分享標(biāo)題 var sharelink = $(#L_url).text();/分享的鏈接 var shareimgUrl = $(#L_imgurl).text();/分享的圖標(biāo) var sharedesc = $(#L_desc).text(); /分享給朋友的描述 /分享到朋友圈 wx.onMenuShareTimeline( title: sharetitle, / 分享標(biāo)題 link: sharelink, / 分享鏈接 imgUrl: shareimgUrl, / 分享圖標(biāo) success: function () alert(分享好了); / 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) , cancel: function () alert(沒分享喲); / 用戶取消分享后執(zhí)行的回調(diào)函數(shù) ); wx.onMenuShareAppMessage( title: sharetitle, / 分享標(biāo)題 desc: sharedesc, / 分享描述 link: sharelink, / 分享鏈接 imgUrl: shareimgUrl, / 分享圖標(biāo) type: , / 分享類型,music、video或link,不填默認(rèn)為link dataUrl: , / 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空 success: function () alert(分享好了); / 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) , cancel: function () alert(沒分享喲); / 用戶取消分享后執(zhí)行的回調(diào)函數(shù) ); ); wx.error(function (res) alert(配置失敗); ); );后臺(tái)代碼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接口的接入驗(yàn)證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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告公司材料采購(gòu)合同范本
- 二零二五年度無子女離婚協(xié)議書及子女教育資助合同
- 二零二五年度酒店會(huì)議室場(chǎng)地租賃及配套交通合同
- 二零二五年度酒吧租賃合同合同簽訂后的租賃物維護(hù)責(zé)任
- 2025年度商鋪轉(zhuǎn)讓三方合同附品牌使用權(quán)及營(yíng)銷支持
- 夏令營(yíng)代理商合作協(xié)議書范本
- 二零二五年度物流園區(qū)租賃合同違約責(zé)任及賠償標(biāo)準(zhǔn)
- 2025年度駕校安全員駕駛安全責(zé)任書及服務(wù)合同
- 二零二五年度煙草證轉(zhuǎn)讓與品牌連鎖經(jīng)營(yíng)合作協(xié)議
- 二零二五年度防水裝修工程售后服務(wù)合同
- 三星SHP-DP728指紋鎖說明書
- 預(yù)應(yīng)力錨索張拉及封錨
- 烤煙生產(chǎn)沿革
- GB 1886.227-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑嗎啉脂肪酸鹽果蠟
- 毛澤東思想課件-第七章 毛澤東思想的活的靈魂
- 公共關(guān)系效果的評(píng)估課件
- 建筑施工安全員理論考核試題與答案
- 高速公路用地勘測(cè)定界及放線定樁技術(shù)標(biāo)書
- 華萊士標(biāo)準(zhǔn)化體系
- 快捷smt全自動(dòng)物料倉(cāng)儲(chǔ)方案
- keysight眼圖和抖動(dòng)噪聲基礎(chǔ)知識(shí)與測(cè)量方法
評(píng)論
0/150
提交評(píng)論