最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序-詳解微信登陸、微信支付、模板消息

 更新時(shí)間:2016年11月23日 09:33:23   作者:奮進(jìn)程序猿  
本篇文章主要是介紹了微信小程序-微信登陸、微信支付、模板消息,具有一定的參考價(jià)值,有需要的可以了解一下。

微信公眾平臺(tái)近日悄然開(kāi)始內(nèi)測(cè)微信小程序(微信公眾號(hào))功能,引來(lái)無(wú)數(shù)開(kāi)發(fā)者和普通用戶關(guān)注,微信支付的能力,是隨著小程序的發(fā)布一并推出的,具有介紹如下:

wx.login(OBJECT)

調(diào)用接口獲取登錄憑證(code)進(jìn)而換取用戶登錄態(tài)信息,包括用戶的唯一標(biāo)識(shí)(openid) 及本次登錄的 會(huì)話密鑰(session_key)。用戶數(shù)據(jù)的加解密通訊需要依賴會(huì)話密鑰完成。

OBJECT參數(shù)說(shuō)明:

success返回參數(shù)說(shuō)明:

示例代碼:

//app.js
App({
 onLaunch: function() {
  wx.login({
   success: function(res) {
    if (res.code) {
     //發(fā)起網(wǎng)絡(luò)請(qǐng)求
     wx.request({
      url: 'https://test.com/onLogin',
      data: {
       code: res.code
      }
     })
    } else {
     console.log('獲取用戶登錄態(tài)失?。? + res.errMsg)
    }
   }
  });
 }
})

code 換取 session_key

這是一個(gè) HTTP 接口,開(kāi)發(fā)者服務(wù)器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對(duì)用戶數(shù)據(jù)進(jìn)行加密簽名的密鑰。為了自身應(yīng)用安全,session_key 不應(yīng)該在網(wǎng)絡(luò)上傳輸。

接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

請(qǐng)求參數(shù):

返回參數(shù):

返回說(shuō)明:

//正常返回的JSON數(shù)據(jù)包
{
   "openid": "OPENID",
   "session_key": "SESSIONKEY"
   "expires_in": 2592000
}
//錯(cuò)誤時(shí)返回JSON數(shù)據(jù)包(示例為Code無(wú)效)
{
  "errcode": 40029,
  "errmsg": "invalid code"
}

登錄態(tài)維護(hù)

通過(guò) wx.login() 獲取到用戶登錄態(tài)之后,需要維護(hù)登錄態(tài)。開(kāi)發(fā)者要注意不應(yīng)該直接把 session_key、openid 等字段作為用戶的標(biāo)識(shí)或者 session 的標(biāo)識(shí),而應(yīng)該自己派發(fā)一個(gè) session 登錄態(tài)(請(qǐng)參考登錄時(shí)序圖)。對(duì)于開(kāi)發(fā)者自己生成的 session,應(yīng)該保證其安全性且不應(yīng)該設(shè)置較長(zhǎng)的過(guò)期時(shí)間。session 派發(fā)到小程序客戶端之后,可將其存儲(chǔ)在 storage ,用于后續(xù)通信使用。

登錄時(shí)序圖

wx.checkSession(OBJECT)

檢查登陸態(tài)是否過(guò)期

示例代碼:

wx.checkSession({
 success: function(){
  //登錄態(tài)未過(guò)期
 },
 fail: function(){
  //登錄態(tài)過(guò)期
  wx.login()
 }
})

用戶數(shù)據(jù)的簽名驗(yàn)證和加解密

數(shù)據(jù)簽名校驗(yàn)

為了確保 開(kāi)放接口 返回用戶數(shù)據(jù)的安全性,微信會(huì)對(duì)明文數(shù)據(jù)進(jìn)行簽名。開(kāi)發(fā)者可以根據(jù)業(yè)務(wù)需要對(duì)數(shù)據(jù)包進(jìn)行簽名校驗(yàn),確保數(shù)據(jù)的完整性。

  • 簽名校驗(yàn)算法涉及用戶的session_key,通過(guò) wx.login 登錄流程獲取用戶session_key,并自行維護(hù)與應(yīng)用自身登錄態(tài)的對(duì)應(yīng)關(guān)系。
  • 通過(guò)調(diào)用接口(如 wx.getUserInfo)獲取數(shù)據(jù)時(shí),接口會(huì)同時(shí)返回 rawData、signature,其中 signature = sha1( rawData + session_key )
  • 開(kāi)發(fā)者將 signature、rawData 發(fā)送到開(kāi)發(fā)者服務(wù)器進(jìn)行校驗(yàn)。服務(wù)器利用用戶對(duì)應(yīng)的 session_key 使用相同的算法計(jì)算出簽名 signature2 ,比對(duì) signature 與 signature2 即可校驗(yàn)數(shù)據(jù)的完整性。

如wx.getUserInfo的數(shù)據(jù)校驗(yàn):

接口返回的rawData:

{
 "nickName": "Band",
 "gender": 1,
 "language": "zh_CN",
 "city": "Guangzhou",
 "province": "Guangdong",
 "country": "CN",
 "avatarUrl": "http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"
}

用戶的 session-key:

HyVFkGl5F5OQWJZZaNzBBg==

所以,用于簽名的字符串為:

{
 "nickName": "Band",
 "gender": 1,
 "language": "zh_CN",
 "city": "Guangzhou",
 "province": "Guangdong",
 "country": "CN",
 "avatarUrl": "http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"
}HyVFkGl5F5OQWJZZaNzBBg==

使用sha1得到的結(jié)果為

75e81ceda165f4ffa64f4068af58c64b8f54b88c

加密數(shù)據(jù)解密算法

接口如果涉及敏感數(shù)據(jù)(如wx.getUserInfo當(dāng)中的 openId 和unionId ),接口的明文內(nèi)容將不包含這些敏感數(shù)據(jù)。開(kāi)發(fā)者如需要獲取敏感數(shù)據(jù),需要對(duì)接口返回的加密數(shù)據(jù)( encryptedData )進(jìn)行對(duì)稱解密。 解密算法如下:

  • 對(duì)稱解密使用的算法為 AES-128-CBC,數(shù)據(jù)采用PKCS#7填充。
  • 對(duì)稱解密的目標(biāo)密文為 Base64_Decode(encryptedData),
  • 對(duì)稱解密秘鑰 aeskey = Base64_Decode(session_key), aeskey 是16字節(jié)
  • 對(duì)稱解密算法初始向量 iv 會(huì)在數(shù)據(jù)接口中返回。

微信官方提供了多種編程語(yǔ)言的示例代碼(點(diǎn)擊下載)。每種語(yǔ)言類型的接口名字均一致。調(diào)用方式可以參照示例。

注:此前提供的加密數(shù)據(jù)(encryptData)以及對(duì)應(yīng)的加密算法將被棄用,請(qǐng)開(kāi)發(fā)者不要再依賴舊邏輯。

用戶信息:

### wx.getUserInfo(OBJECT)

獲取用戶信息,需要先調(diào)用 wx.login 接口。

OBJECT參數(shù)說(shuō)明:

success返回參數(shù)說(shuō)明:

示例代碼:

wx.getUserInfo({
 success: function(res) {
  var userInfo = res.userInfo
  var nickName = userInfo.nickName
  var avatarUrl = userInfo.avatarUrl
  var gender = userInfo.gender //性別 0:未知、1:男、2:女 
  var province = userInfo.province
  var city = userInfo.city
  var country = userInfo.country
 }
})

encryptedData 解密后為以下 json 結(jié)構(gòu),詳見(jiàn)加密數(shù)據(jù)解密算法

{
  "appId": "APPID",
  "openId": "OPENID",
  "nickName": "NICKNAME",
  "gender": 1,
  "city": "CITY",
  "province": "PROVINCE",
  "country": "COUNTRY",
  "avatarUrl": "AVATARURL",
  "unionId": "UNIONID"
}

UnionID機(jī)制說(shuō)明:

如果開(kāi)發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(hào)(包括小程序),可通過(guò)unionid來(lái)區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開(kāi)放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。換句話說(shuō),同一用戶,對(duì)同一個(gè)微信開(kāi)放平臺(tái)下的不同應(yīng)用,unionid是相同的。

微信開(kāi)放平臺(tái)綁定小程序流程

前提:微信開(kāi)放平臺(tái)帳號(hào)必須已完成開(kāi)發(fā)者資質(zhì)認(rèn)證

開(kāi)發(fā)者資質(zhì)認(rèn)證流程:

登錄微信開(kāi)放平臺(tái)(open.weixin.qq.com) – 帳號(hào)中心 – 開(kāi)發(fā)者資質(zhì)認(rèn)證

微信支付:

wx.requestPayment(OBJECT)
發(fā)起微信支付。

Object參數(shù)說(shuō)明:

示例代碼:

wx.requestPayment({
  'timeStamp': '',
  'nonceStr': '',
  'package': '',
  'signType': 'MD5',
  'paySign': '',
  'success':function(res){
  },
  'fail':function(res){
  }
})

基于微信的通知渠道,我們?yōu)殚_(kāi)發(fā)者提供了可以高效觸達(dá)用戶的模板消息能力,以便實(shí)現(xiàn)服務(wù)的閉環(huán)并提供更佳的體驗(yàn)。

模板推送位置:服務(wù)通知

模板下發(fā)條件:用戶本人在微信體系內(nèi)與頁(yè)面有交互行為后觸發(fā),詳見(jiàn)下發(fā)條件說(shuō)明

模板跳轉(zhuǎn)能力:點(diǎn)擊查看詳情僅能跳轉(zhuǎn)下發(fā)模板的該帳號(hào)的各個(gè)頁(yè)面

使用說(shuō)明

獲取模板 id

登錄https://mp.weixin.qq.com獲取模板,如果沒(méi)有合適的模板,可以申請(qǐng)?zhí)砑有履0?,審核通過(guò)后可使用,詳見(jiàn)模板審核說(shuō)明

頁(yè)面的 <form/> 組件,屬性report-submit為true時(shí),可以聲明為需發(fā)模板消息,此時(shí)點(diǎn)擊按鈕提交表單可以獲取formId,用于發(fā)送模板消息。或者當(dāng)用戶完成支付行為,可以獲取prepay_id用于發(fā)送模板消息。

調(diào)用接口下發(fā)模板消息(詳見(jiàn)接口說(shuō)明)

接口說(shuō)明

1. 獲取 access_token

access_token 是全局唯一接口調(diào)用憑據(jù),開(kāi)發(fā)者調(diào)用各接口時(shí)都需使用 access_token,請(qǐng)妥善保存。access_token 的存儲(chǔ)至少要保留512個(gè)字符空間。access_token 的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的 access_token 失效。

公眾平臺(tái)的 API 調(diào)用所需的 access_token 的使用及生成方式說(shuō)明:

  • 為了保密 appsecrect,第三方需要一個(gè) access_token 獲取和刷新的中控服務(wù)器。而其他業(yè)務(wù)邏輯服務(wù)器所使用的 access_token 均來(lái)自于該中控服務(wù)器,不應(yīng)該各自去刷新,否則會(huì)造成 access_token 覆蓋而影響業(yè)務(wù);
  • 目前 access_token 的有效期通過(guò)返回的 expires_in 來(lái)傳達(dá),目前是7200秒之內(nèi)的值。中控服務(wù)器需要根據(jù)這個(gè)有效時(shí)間提前去刷新新 access_token。在刷新過(guò)程中,中控服務(wù)器對(duì)外輸出的依然是老 access_token,此時(shí)公眾平臺(tái)后臺(tái)會(huì)保證在刷新短時(shí)間內(nèi),新老 access_token 都可用,這保證了第三方業(yè)務(wù)的平滑過(guò)渡;
  • access_token 的有效時(shí)間可能會(huì)在未來(lái)有調(diào)整,所以中控服務(wù)器不僅需要內(nèi)部定時(shí)主動(dòng)刷新,還需要提供被動(dòng)刷新 access_token 的接口,這樣便于業(yè)務(wù)服務(wù)器在 API 調(diào)用獲知 access_token 已超時(shí)的情況下,可以觸發(fā) access_token 的刷新流程。

開(kāi)發(fā)者可以使用 AppID 和 AppSecret 調(diào)用本接口來(lái)獲取 access_token。AppID 和 AppSecret 可登錄微信公眾平臺(tái)官網(wǎng)-設(shè)置-開(kāi)發(fā)設(shè)置中獲得(需要已經(jīng)綁定成為開(kāi)發(fā)者,且?guī)ぬ?hào)沒(méi)有異常狀態(tài))。AppSecret 生成后請(qǐng)自行保存,因?yàn)樵诠娖脚_(tái)每次生成查看都會(huì)導(dǎo)致 AppSecret 被重置。注意調(diào)用所有微信接口時(shí)均需使用 https 協(xié)議。如果第三方不使用中控服務(wù)器,而是選擇各個(gè)業(yè)務(wù)邏輯點(diǎn)各自去刷新 access_token,那么就可能會(huì)產(chǎn)生沖突,導(dǎo)致服務(wù)不穩(wěn)定。

接口地址:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

HTTP請(qǐng)求方式:

GET

參數(shù)說(shuō)明 :

返回參數(shù)說(shuō)明:

正常情況下,微信會(huì)返回下述 JSON 數(shù)據(jù)包給開(kāi)發(fā)者:

{"access_token": "ACCESS_TOKEN", "expires_in": 7200}

2. 發(fā)送模板消息

接口地址:(ACCESS_TOKEN 需換成上文獲取到的 access_token)

https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

示例:

{
 "touser": "OPENID", 
 "template_id": "TEMPLATE_ID", 
 "page": "index",     
 "form_id": "FORMID",     
 "data": {
   "keyword1": {
     "value": "339208499", 
     "color": "#173177"
   }, 
   "keyword2": {
     "value": "2015年01月05日 12:30", 
     "color": "#173177"
   }, 
   "keyword3": {
     "value": "粵海喜來(lái)登酒店", 
     "color": "#173177"
   } , 
   "keyword4": {
     "value": "廣州市天河區(qū)天河路208號(hào)", 
     "color": "#173177"
   } 
 },
 "emphasis_keyword": "keyword1.DATA" 
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

{
 "errcode": 0,
 "errmsg": "ok",
}

錯(cuò)誤時(shí)會(huì)返回錯(cuò)誤碼信息,說(shuō)明如下:

使用效果:

 注意:內(nèi)部測(cè)試階段,模板消息下發(fā)后,在客戶端僅能看到由“公眾號(hào)安全助手”下發(fā)的簡(jiǎn)單通知。能收到該提示,即表明模板消息功能已經(jīng)調(diào)試成功。待該功能正式上線后,將可以展示成上圖效果。

 下發(fā)條件說(shuō)明

1、支付

當(dāng)用戶在小程序內(nèi)完成過(guò)支付行為,可允許開(kāi)發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次支付可下發(fā)1條,多次支付下發(fā)條數(shù)獨(dú)立,互相不影響)

2、提交表單

當(dāng)用戶在小程序內(nèi)發(fā)生過(guò)提交表單行為且該表單聲明為要發(fā)模板消息的,開(kāi)發(fā)者需要向用戶提供服務(wù)時(shí),可允許開(kāi)發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次提交表單可下發(fā)1條,多次提交下發(fā)條數(shù)獨(dú)立,相互不影響)

 審核說(shuō)明

1.標(biāo)題

1.1標(biāo)題不能存在相同

1.2標(biāo)題意思不能存在過(guò)度相似 

1.3標(biāo)題必須以“提醒”或“通知”結(jié)尾

1.4標(biāo)題不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容

1.5標(biāo)題必須能體現(xiàn)具體服務(wù)場(chǎng)景

1.6標(biāo)題不能涉及營(yíng)銷相關(guān)內(nèi)容,包括不限于:

消費(fèi)優(yōu)惠類、購(gòu)物返利類、商品更新類、優(yōu)惠券類、代金券類、紅包類、會(huì)員卡類、積分類、活動(dòng)類等營(yíng)銷傾向通知

2.關(guān)鍵詞

2.1同一標(biāo)題下,關(guān)鍵詞不能存在相同

2.2同一標(biāo)題下,關(guān)鍵詞不能存在過(guò)度相似

2.3關(guān)鍵詞不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容

2.4關(guān)鍵詞內(nèi)容示例必須與關(guān)鍵詞對(duì)應(yīng)匹配

2.5關(guān)鍵詞不能太過(guò)寬泛,需要具有限制性,例如:“內(nèi)容”這個(gè)就太寬泛,不能審核通過(guò)

違規(guī)說(shuō)明

除不能違反運(yùn)營(yíng)規(guī)范外,還不能違反以下規(guī)則,包括但不限于:

  1. 不允許惡意誘導(dǎo)用戶進(jìn)行觸發(fā)操作,以達(dá)到可向用戶下發(fā)模板目的
  2. 不允許惡意騷擾,下發(fā)對(duì)用戶造成騷擾的模板
  3. 不允許惡意營(yíng)銷,下發(fā)營(yíng)銷目的模板
  4. 不允許通過(guò)服務(wù)號(hào)下發(fā)模板來(lái)告知用戶在小程序內(nèi)觸發(fā)的服務(wù)相關(guān)內(nèi)容

處罰說(shuō)明

根據(jù)違規(guī)情況給予相應(yīng)梯度的處罰,一般處罰規(guī)則如下:

  1. 第一次違規(guī),刪除違規(guī)模板以示警告,
  2. 第二次違規(guī),封禁接口7天,
  3. 第三次違規(guī),封禁接口30天,
  4. 第四次違規(guī),永久封禁接口

處罰結(jié)果及原因以站內(nèi)信形式告知

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談JavaScript中的parseInt()的妙用

    淺談JavaScript中的parseInt()的妙用

    本文主要介紹了JavaScript中的parseInt()的妙用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • javascript:void(0)是什么意思示例介紹

    javascript:void(0)是什么意思示例介紹

    Javascript中void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值,有不了解的朋友可以參考下本文
    2013-11-11
  • JS對(duì)象復(fù)制(深拷貝和淺拷貝)

    JS對(duì)象復(fù)制(深拷貝和淺拷貝)

    這篇文章主要介紹了JS對(duì)象復(fù)制(深拷貝和淺拷貝),并附有詳細(xì)代碼,感興趣的小伙伴們,可以參考下
    2021-04-04
  • Javascript改變CSS樣式(局部和全局)

    Javascript改變CSS樣式(局部和全局)

    改變CSS樣式分為局部和全局,下面為大家介紹下使用Javascript具體的實(shí)現(xiàn),感興趣的朋友可以參考下
    2013-12-12
  • JavaScript實(shí)現(xiàn)動(dòng)態(tài)增刪表格的方法

    JavaScript實(shí)現(xiàn)動(dòng)態(tài)增刪表格的方法

    本篇文章主要介紹了JavaScript實(shí)現(xiàn)動(dòng)態(tài)增刪表格,可以實(shí)現(xiàn)表格增加和刪除數(shù)據(jù)的功能,非常具有實(shí)用價(jià)值,有興趣的可以了解一下
    2017-03-03
  • 終于解決了IE8不支持?jǐn)?shù)組的indexOf方法

    終于解決了IE8不支持?jǐn)?shù)組的indexOf方法

    今天,測(cè)試報(bào)過(guò)來(lái)一個(gè)js bug, 在IE8下有個(gè)js錯(cuò)誤,但是在其它瀏覽器下(Firefox, Chrome, IE9)下面都很正常。后來(lái)調(diào)試發(fā)現(xiàn)原因是在IE8下,js數(shù)組沒(méi)有indexOf方法。
    2013-04-04
  • 一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象

    一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象

    我們?cè)跓倪^(guò)程中去干了別的事情,就屬于異步模式,異步模式中不會(huì)等待異步任務(wù)的結(jié)束才開(kāi)始執(zhí)行下一個(gè)同步的任務(wù),都是開(kāi)啟過(guò)后就立即執(zhí)行下一個(gè)任務(wù),下面這篇文章主要給大家介紹了如何通過(guò)一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 基于javascript實(shí)現(xiàn)放大鏡特效

    基于javascript實(shí)現(xiàn)放大鏡特效

    這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)放大鏡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 固定背景實(shí)現(xiàn)的背景滾動(dòng)特效示例分享

    固定背景實(shí)現(xiàn)的背景滾動(dòng)特效示例分享

    固定背景滾動(dòng)特效,使用background-attachment: fixed和導(dǎo)航菜單,頁(yè)面會(huì)非常平滑的滾動(dòng),感興趣的朋友可以參考下哈希望對(duì)你有所幫助
    2013-05-05
  • javascript實(shí)現(xiàn)前端成語(yǔ)點(diǎn)擊驗(yàn)證優(yōu)化

    javascript實(shí)現(xiàn)前端成語(yǔ)點(diǎn)擊驗(yàn)證優(yōu)化

    這篇文章主要介紹了javascript實(shí)現(xiàn)前端成語(yǔ)點(diǎn)擊驗(yàn)證優(yōu)化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評(píng)論

会理县| 高要市| 凤山市| 庐江县| 广州市| 盐源县| 东乌珠穆沁旗| 林口县| 大关县| 铅山县| 西乡县| 金华市| 宜川县| 体育| 双桥区| 宝坻区| 平湖市| 南充市| 小金县| 高台县| 普洱| 东乌珠穆沁旗| 中江县| 沈丘县| 堆龙德庆县| 周宁县| 九台市| 永和县| 中西区| 外汇| 西和县| 班戈县| 资阳市| 东海县| 麻阳| 布拖县| 山东省| 屯留县| 汝南县| 高尔夫| 德清县|