• <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
      <nav id="xcyjv"></nav>
    1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>

        .NET Core 微信小程序退款步驟——(統一退款)

         更新時間:2019年09月12日 09:11:35   作者:hailang2zh   我要評論
        這篇文章主要介紹了.NET Core 微信小程序退款步驟——(統一退款),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

        繼上一篇".NET Core 微信小程序支付——(統一下單)后",本文將實現統一退款功能,能支付就應該能退款嘛,一般涉及到錢的東西都會比較敏感,所以在設計退款流程時一定要嚴謹,不能出一點差錯,否則你將會面臨自己掏腰包的可能,下面我們來講一講退款的實現步驟。

        退款應該場景及規則

        當交易發生之后一段時間內,由于買家或者賣家的原因需要退款時,賣家可以通過退款接口將支付款退還給買家,微信支付將在收到退款請求并且驗證成功之后,按照退款規則將支付款按原路退到買家帳號上。

        規則

        1、交易時間超過一年的訂單無法提交退款;

        2、微信支付退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號和設置不同的退款單號。申請退款總金額不能超過訂單金額。 一筆退款失敗后重新提交,請不要更換退款單號,請使用原商戶退款單號。

        3、請求頻率限制:150qps,即每秒鐘正常的申請退款請求次數不超過150次

            錯誤或無效請求頻率限制:6qps,即每秒鐘異;蝈e誤的退款申請請求不超過6次

        4、每個支付訂單的部分退款次數不能超過50次

        接口地址

        接口鏈接:https://api.mch.weixin.qq.com/secapi/pay/refund

        相關參數

        官方退款文檔

        文檔地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6

        實現統一退款流程

        如果業務有多處退款流程,可以將退款流程進行封裝,方便多位置調用;如果公司有同主體下的不同小程序,都需要退款功能,也是可以進行封裝,針對不同的小程序進行退款。

        去商戶后臺先下載證書,退款時需要,下圖是商戶后臺下載證書的界面:

        引用包:

        Senparc.Weixin.WxOpen

        Senparc.Weixin.TenPay

        注冊公眾號,小程序信息

        services.AddSenparcGlobalServices(Configuration)
        .AddSenparcWeixinServices(Configuration);
        IRegisterService register = RegisterService.Start(env, senparcSetting.Value).UseSenparcGlobal(false, null);
        register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value)
         .RegisterTenpayV3(senparcWeixinSetting.Value, "appid"); 

        統一退款代碼實現

        publicbool RefundProduct(OrdOrderProduct ordOrderProduct, PayOrderMstParam payOrderMstParam, OrdOrderPayItem ordOrderPayItem, string appID, DateTime thisTime, ref string errMsg)
        {
         try
         {
         OrdOrderPayMst refPay = null;
         if (!PayOrderManager.CreatePayOrderMST(payOrderMstParam, thisTime, ref refPay, ref errMsg))
         {
          errMsg = "生成退款單出錯!" + errMsg;
          return false;
         }
         var PayInfo = Senparc.Weixin.Config.SenparcWeixinSetting.Items[appID];
         string AppID = PayInfo.WxOpenAppId;
         string AppSecret = PayInfo.WxOpenAppSecret;
         string Mch_id = PayInfo.TenPayV3_MchId;//商戶號
         string Mch_key = PayInfo.TenPayV3_Key;//商戶密鑰
         string notifyUrl = string.Format(PayInfo.TenPayV3_TenpayNotify, "RefundNotifyUrl");
         var timeStamp = TenPayV3Util.GetTimestamp();
         var nonceStr = TenPayV3Util.GetNoncestr();
         //支付源單號
         string outTradeNo = ordOrderPayItem.PayNo;//商戶訂單號/支付單號
         refPay.PayNoSource = ordOrderPayItem.PayNo;
         //退款單號
         string outRefundNo = refPay.PayNo;//新退款單號
         //支付時的總金額
         int totalFee = (int)(ordOrderPayItem.PayPrice * 100);
         //退款金額
         int refundFee = (int)(refPay.PayPrice * 100);
         string opUserId = PayInfo.TenPayV3_MchId;
         var dataInfo = new TenPayV3RefundRequestData(AppID, Mch_id, Mch_key,
          null, nonceStr, null, outTradeNo, outRefundNo, totalFee, refundFee, opUserId, null, notifyUrl: notifyUrl);
         //Logger.Info($"PayInfo={PayInfo.SerializeObject()}");
         //Logger.Info($"dataInfo={dataInfo.SerializeObject()}");
         //var basePath = AppContext.BaseDirectory;
         //var certPath = Path.Combine(basePath, "Config/apiclient_cert.p12");
         //var cert = @"D:\projects\orderapi.trydou.com\Config\apiclient_cert.p12";//根據自己的證書位置修改
         //var password = Mch_id;//默認為商戶號,建議修改
         //配置好證書地址,V3自動識別
         var result = TenPayV3.Refund(dataInfo);
         refPay.PayResult = result.SerializeObject();
         //Logger.Info("提交退款申請:" + refPay.PayResult);
         if (result.return_code.ToUpper() == "SUCCESS" && result.result_code.ToUpper() == "SUCCESS")
         {
          using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
          {
          //業務處理
          //提交事務
          scope.Complete();
          }
          return true;
         }
         else
         {
          errMsg = result.err_code_des;
          Logger.Error(string.Format("提交退款失敗,退款單號={0},關聯訂單號={1},關聯產品={2},退款result={3}",
          refPay.PayNo, refPay.RelationNo, refPay.RelationNos, refPay.PayResult));
         }
         }
         catch (Exception ex)
         {
         errMsg = ex.Message;
         Logger.Error(string.Format("提交退款異常:Message={0},StackTrace={1}", ex.Message, ex.StackTrace));
          }
          return false;
         }

        注:注意退款接口的參數,如:金額,退款地址等,確保參數正確,一般微信會收到退款的請求指令,微信處理成功后,會異步回調退款的接口給服務器。

        退款統一回調處理

        直接上代碼如下:

        /// <summary>
        /// 退款回調
        /// </summary>
        [HttpPost("RefundNotifyUrl")]
        public ActionResult RefundNotifyUrl()
        {
         ResponseResult result = new ResponseResult();
         ResponseHandler resHandler = new ResponseHandler(HttpContext);
         string return_code = resHandler.GetParameter("return_code");
         string return_msg = resHandler.GetParameter("return_msg");
         try
         {
         var mch_key = Senparc.Weixin.Config.SenparcWeixinSetting.TenPayV3_Key;
         if (return_code.ToUpper() == "SUCCESS")
         {
          //string result_code = resHandler.GetParameter("result_code");
          //string appId = resHandler.GetParameter("appid");
          //string mch_id = resHandler.GetParameter("mch_id");
          //string nonce_str = resHandler.GetParameter("nonce_str");
          string req_info = resHandler.GetParameter("req_info");
          var decodeReqInfo = TenPayV3Util.DecodeRefundReqInfo(req_info, mch_key);
          var decodeDoc = XDocument.Parse(decodeReqInfo);
          var refundNotifyXml = decodeDoc.SerializeObject();
          //獲取接口中需要用到的信息
          string out_trade_no = decodeDoc.Root.Element("out_trade_no").Value;
          string out_refund_no = decodeDoc.Root.Element("out_refund_no").Value;
          string transaction_id = decodeDoc.Root.Element("transaction_id").Value;
          string refund_id = decodeDoc.Root.Element("refund_id").Value;
          int total_fee = int.Parse(decodeDoc.Root.Element("total_fee").Value);
          int refund_fee = int.Parse(decodeDoc.Root.Element("refund_fee").Value);
          RefundNotifyParam param = new RefundNotifyParam()
          {
          PayNo = out_trade_no,//商戶訂單號
          PayPrice = ((float)refund_fee.ToInt() / 100).ToDecimal(),//退款金額
          Out_refund_no = out_refund_no,//商戶退款單號 
          TransactionNo = transaction_id,//微信訂單號
          Refund_id = refund_id, //微信退款單號 
          };
          Logger.Info(string.Format("退款回調參數,return_code={0},return_msg={1},refundNotifyXml={2}", return_code, return_msg, refundNotifyXml));
          result = Service.RefundNotifyUrl(param);
          if (result.errno != 0)
          {
          //回調處理邏輯失敗
          Logger.Error(string.Format("退款回調業務處理失。和丝顔翁杮0},{1}", param.Out_refund_no, result.errmsg));
          }
          else
          {
          Logger.Info(string.Format("退款回調業務處理成功,退款單號:{0}", param.Out_refund_no));
          string xml = string.Format(@"<xml>
            <return_code><![CDATA[{0}]]></return_code>
            <return_msg><![CDATA[{1}]]></return_msg>
            </xml>", return_code, return_msg);
          return Content(xml, "text/xml");
          }
         }
         else
         {
          //錯誤的訂單處理
          Logger.Error(string.Format("退款回調失敗,return_code={0},return_msg={1}", return_code, return_msg));
         }
         }
         catch (Exception ex)
         {
         Logger.Error(string.Format("退款回調異常:Message={0},StackTrace={1}", ex.Message, ex.StackTrace));
         }
         return Content("fail", "text/xml");
        }

        注:如果業務處理退款成功后,請返回結果告訴微信SUCCESS,否則微信也會按規則不停發送退款回調給服務器,直到次數用完為止,具體查看上面規則文檔。

        總結

        以上所述是小編給大家介紹的.NET Core 微信小程序退款步驟——(統一退款),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        相關文章

        最新評論

        01彩票网app
      1. <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
          <nav id="xcyjv"></nav>
        1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>
            庆阳 | 邯郸 | 温岭 | 遵义 | 广汉 | 迪庆 | 十堰 | 诸城 | 湖北武汉 | 玉树 | 绍兴 | 阳江 | 汉川 | 广元 | 山东青岛 | 汉中 | 景德镇 | 南阳 | 万宁 | 包头 | 高密 | 丽江 | 淮安 | 湖南长沙 | 禹州 | 秦皇岛 | 海拉尔 | 蚌埠 | 青海西宁 | 陵水 | 乐山 | 凉山 | 营口 | 赣州 | 吉林长春 | 大庆 | 阜新 | 阜新 | 梧州 | 汕头 | 张家口 | 三亚 | 平顶山 | 乌海 | 惠东 | 信阳 | 广安 | 苍南 | 蓬莱 | 韶关 | 钦州 | 张家界 | 铜陵 | 莱芜 | 莆田 | 包头 | 吴忠 | 亳州 | 姜堰 | 宣城 | 内江 | 海宁 | 大同 | 唐山 | 潜江 | 龙口 | 雄安新区 | 丹阳 | 湘西 | 梅州 | 寿光 | 汝州 | 临海 | 雄安新区 | 百色 | 西双版纳 | 沭阳 | 西藏拉萨 | 咸宁 | 乌海 | 瑞安 | 抚州 | 德宏 | 海南 | 锦州 | 吴忠 | 锦州 | 长葛 | 宜春 | 曲靖 | 桐乡 | 宜宾 | 吐鲁番 | 贵州贵阳 | 阳春 | 固原 | 宁国 | 怒江 | 贵州贵阳 | 甘孜 | 宁德 | 邳州 | 大理 | 大丰 | 漳州 | 南京 | 玉林 | 通辽 | 烟台 | 林芝 | 邯郸 | 葫芦岛 | 改则 | 赣州 | 南充 | 益阳 | 南安 | 永新 | 乌兰察布 | 迁安市 | 象山 | 沭阳 | 台湾台湾 | 临沂 | 博尔塔拉 | 河池 | 大兴安岭 | 黄南 | 威海 | 邢台 | 玉溪 | 张北 | 临沧 | 姜堰 | 广汉 | 徐州 | 昌吉 | 晋城 | 酒泉 | 滕州 | 大连 | 任丘 | 海西 | 台北 | 海东 | 泉州 | 玉树 | 果洛 | 临汾 | 台北 | 长葛 | 锦州 | 抚顺 | 芜湖 | 焦作 | 和田 | 文山 | 枣阳 | 荆门 | 雄安新区 | 庆阳 | 迁安市 | 广安 | 海拉尔 | 河源 | 泉州 | 台湾台湾 | 顺德 | 驻马店 | 南京 | 永康 | 神木 | 海南海口 | 岳阳 | 宜春 | 贺州 | 和田 | 怒江 | 芜湖 | 云浮 | 新沂 | 黄石 | 丹阳 | 福建福州 | 东海 | 塔城 | 石狮 | 诸暨 | 鄢陵 | 邵阳 | 宜昌 | 辽宁沈阳 | 菏泽 | 潜江 | 雄安新区 | 蚌埠 | 南充 | 沭阳 | 塔城 | 迁安市 | 荆州 | 雅安 | 济南 | 湖北武汉 | 苍南 | 海宁 | 十堰 | 赣州 | 菏泽 | 偃师 | 白沙 | 仁怀 | 阿里 | 黄南 | 大同 | 台中 | 平凉 | 云浮 | 保山 | 阿坝 | 诸城 | 周口 | 温州 | 公主岭 | 神农架 | 荆州 | 茂名 | 潜江 | 海丰 | 溧阳 | 保定 | 广元 | 乌兰察布 | 五家渠 | 巴中 | 鹤岗 | 湘西 | 泗洪 | 阿拉善盟 | 沭阳 | 大庆 | 昆山 | 唐山 | 临沂 | 眉山 | 肇庆 | 新余 | 吉林长春 | 巴音郭楞 | 燕郊 | 三沙 | 宜宾 | 宣城 | 吉安 | 绥化 | 沭阳 | 苍南 | 钦州 | 亳州 | 山南 | 江苏苏州 | 黄山 | 儋州 | 达州 | 保山 | 滁州 | 巴音郭楞 | 涿州 | 汝州 | 昭通 | 嘉善 | 绵阳 | 嘉善 | 乳山 | 枣阳 | 涿州 | 防城港 | 任丘 | 泗洪 | 昆山 | 钦州 | 辽阳 | 新泰 | 果洛 | 荆门 | 齐齐哈尔 | 台南 | 基隆 | 济南 | 惠州 | 天长 | 定安 | 自贡 | 遂宁 | 石狮 | 洛阳 | 高密 | 仙桃 | 长治 | 济宁 | 鄂州 | 益阳 | 宁国 | 惠东 | 常州 | 高雄 | 宝鸡 | 湘潭 | 甘肃兰州 | 白城 | 禹州 | 巴彦淖尔市 | 四川成都 | 佳木斯 | 大兴安岭 | 蚌埠 | 白银 | 新沂 | 荆州 | 山东青岛 | 庄河 | 漳州 | 武安 | 大兴安岭 | 临海 | 凉山 | 洛阳 | 余姚 | 镇江 | 建湖 | 红河 | 宜宾 | 滕州 | 曲靖 | 天水 | 广州 | 酒泉 | 曲靖 | 平顶山 | 沧州 | 沧州 | 黑河 | 崇左 | 开封 | 莱芜 | 六安 | 吉林 | 东海 | 包头 | 德州 | 平凉 | 南京 | 蚌埠 | 阜新 | 海拉尔 | 鄢陵 | 海南 | 东台 | 阿坝 | 仁寿 | 大庆 | 天水 | 宿州 | 龙口 | 商洛 | 淮北 | 茂名 | 衡阳 | 遂宁 | 新沂 | 临沂 | 中山 | 洛阳 | 雄安新区 | 兴安盟 | 曲靖 | 东莞 | 诸城 | 台州 | 高雄 | 和田 | 安康 | 景德镇 | 桂林 | 晋中 | 绵阳 | 金坛 | 新余 | 仁怀 | 唐山 | 自贡 | 丽水 | 宿迁 | 株洲 | 无锡 | 玉溪 | 岳阳 | 丽水 | 云浮 | 阿克苏 | 南安 | 巴中 | 宝鸡 | 临汾 | 连云港 | 绥化 | 海拉尔 | 厦门 | 日照 | 日照 | 如皋 | 黄山 | 三明 | 茂名 | 大庆 | 克孜勒苏 | 定州 | 南京 | 单县 | 玉溪 | 海门 | 昌吉 | 乌海 | 永州 | 大庆 | 桂林 | 柳州 | 运城 | 博尔塔拉 | 顺德 | 温州 | 随州 | 滕州 | 亳州 | 昌吉 | 惠州 | 招远 | 文昌 | 临沧 | 资阳 | 淮北 | 东阳 | 营口 | 宜春 | 陵水 | 邹平 | 枣庄 | 沛县 | 巴彦淖尔市 | 乌兰察布 | 河池 | 怀化 | 张掖 | 白山 | 丽水 | 清徐 | 盘锦 | 贺州 | 嘉兴 | 龙岩 | 汝州 | 德州 | 三明 | 海门 | 遂宁 | 锡林郭勒 | 涿州 | 张掖 | 吉林 | 海东 | 吴忠 | 驻马店 | 黑龙江哈尔滨 | 安吉 | 天长 | 靖江 | 乳山 | 威海 | 陵水 | 迁安市 | 晋中 | 洛阳 | 新沂 | 新沂 | 吴忠 | 杞县 | 绵阳 | 菏泽 | 丹阳 | 义乌 | 陵水 | 金昌 | 海南 | 平潭 | 保山 | 阿拉善盟 | 燕郊 | 玉环 | 宜春 | 佳木斯 | 朝阳 | 内江 | 洛阳 | 屯昌 | 靖江 | 海宁 | 益阳 | 铜川 | 瓦房店 | 阿勒泰 | 建湖 | 北海 | 广元 | 宜春 | 乐山 | 黑龙江哈尔滨 | 绍兴 | 钦州 | 乌海 | 徐州 | 晋中 | 株洲 | 抚顺 | 百色 | 台南 | 台湾台湾 | 广安 | 顺德 | 昌都 | 桓台 | 黔东南 | 晋江 | 台南 | 铜陵 | 益阳 | 肥城 | 南阳 | 龙岩 | 义乌 | 衡阳 | 毕节 | 海拉尔 | 河北石家庄 | 本溪 | 呼伦贝尔 | 山南 | 榆林 | 孝感 | 象山 | 文山 | 萍乡 | 广安 | 黔东南 | 兴安盟 | 威海 | 深圳 | 贺州 | 益阳 | 甘肃兰州 | 临海 | 正定 | 博尔塔拉 | 东台 | 和县 | 澄迈 | 莱州 | 固原 | 张掖 | 安阳 | 甘肃兰州 | 灵宝 | 孝感 | 澳门澳门 | 天水 | 清徐 | 安顺 | 黄冈 | 梧州 | 临沂 | 图木舒克 | 襄阳 | 涿州 | 沧州 | 神木 | 甘肃兰州 | 绍兴 | 南阳 | 乐山 | 灌云 | 聊城 | 马鞍山 | 台山 | 安岳 | 唐山 | 安庆 | 台南 | 包头 | 雅安 | 吉林长春 | 张掖 | 开封 | 临猗 | 莒县 | 溧阳 | 德宏 | 荆州 | 通辽 | 濮阳 | 吉林长春 | 湖州 | 台州 | 德宏 | 安阳 | 黔西南 | 攀枝花 | 甘肃兰州 | 曲靖 | 灌南 | 临汾 | 大同 | 抚顺 | 呼伦贝尔 | 泰安 | 阳江 | 安康 | 韶关 | 曲靖 | 武安 | 金坛 | 鹰潭 | 济源 | 台北 | 红河 | 台北 | 河南郑州 | 武威 | 惠州 | 连云港 | 陵水 | 定州 | 驻马店 | 内蒙古呼和浩特 | 楚雄 | 阜新 | 伊春 | 淮北 | 临沂 | 张家界 | 金昌 | 启东 | 阿拉善盟 | 云浮 | 泰州 | 玉树 | 云南昆明 | 广汉 | 巴中 | 启东 | 兴化 | 鄢陵 | 鹰潭 | 平潭 | 长葛 | 张掖 | 禹州 | 台南 | 丽江 | 安徽合肥 | 大兴安岭 | 克拉玛依 | 贺州 | 抚州 | 安吉 | 黑河 | 阳泉 | 海南 | 朝阳 | 大庆 | 林芝 | 东海 | 南充 | 大庆 | 海西 | 聊城 | 神农架 | 海西 | 澄迈 | 温岭 | 承德 | 中卫 | 廊坊 | 芜湖 | 包头 | 焦作 | 瑞安 | 临夏 | 醴陵 | 贺州 | 泗洪 | 莆田 | 内江 | 余姚 | 阿坝 | 宁波 | 临汾 | 博尔塔拉 | 汉川 | 永康 | 贺州 | 达州 | 海宁 | 陇南 | 琼中 | 嘉峪关 | 克孜勒苏 | 宜春 | 吉林 | 双鸭山 | 通辽 | 锦州 | 建湖 | 贵港 | 烟台 | 东台 | 昌吉 | 博罗 | 鸡西 | 西藏拉萨 | 通辽 | 金华 | 怒江 | 南安 | 日土 | 平顶山 | 深圳 | 咸阳 | 漯河 | 大连 | 昌都 | 东莞 | 湖南长沙 | 琼中 | 铁岭 | 延边 | 辽源 | 昌吉 | 玉林 | 宝应县 | 漯河 | 衡阳 | 三亚 | 鹤岗 | 曹县 | 高密 | 定西 | 明港 | 宝应县 | 芜湖 | 任丘 | 秦皇岛 | 宿迁 | 深圳 | 佳木斯 | 吕梁 | 陇南 | 赤峰 | 吉安 | 南通 | 牡丹江 | 吉林长春 | 伊春 | 柳州 | 吉林长春 | 仁怀 | 晋江 | 大连 | 台北 | 如皋 | 迁安市 | 库尔勒 | 株洲 | 靖江 | 河池 | 平顶山 | 随州 | 甘肃兰州 | 五指山 | 曲靖 | 南平 | 邯郸 | 天门 | 台中 | 安康 | 乌兰察布 | 台南 | 乐山 | 金昌 | 石嘴山 | 自贡 | 南充 | 北海 | 鸡西 | 商丘 | 梧州 | 贺州 | 招远 | 昭通 | 黔东南 | 忻州 | 阿拉尔 | 包头 | 驻马店 | 哈密 | 淮南 | 河池 | 靖江 | 洛阳 | 乌兰察布 | 梧州 | 亳州 | 兴安盟 | 通化 | 武安 | 禹州 | 常州 | 曲靖 | 汕尾 | 中卫 | 迁安市 | 慈溪 | 宝应县 | 文昌 | 青海西宁 | 鹤岗 | 如东 | 鸡西 | 博尔塔拉 | 昌都 | 宿州 | 鸡西 | 衢州 | 深圳 | 临猗 | 岳阳 | 顺德 | 武安 | 吉安 | 池州 | 福建福州 | 乌兰察布 | 邳州 | 白沙 | 乳山 | 日照 | 晋中 | 高密 | 忻州 | 山南 | 泰兴 | 湖州 | 商洛 | 邹城 | 简阳 | 防城港 | 黑龙江哈尔滨 | 包头 | 宿州 | 黄山 | 燕郊 | 长垣 | 玉溪 | 固原 | 宜都 | 邹平 | 天水 | 阳泉 | 锡林郭勒 | 忻州 | 基隆 | 茂名 | 抚顺 | 武夷山 | 阿拉善盟 | 宁波 | 保亭 | 鹤壁 | 厦门 | 海西 | 宣城 | 厦门 | 南通 | 长治 | 连云港 | 迁安市 | 诸城 | 大庆 | 内蒙古呼和浩特 | 兴安盟 | 内江 | 惠州 | 广汉 | 新乡 | 汕头 | 三亚 | 包头 | 汝州 | 泗阳 | 中卫 | 巢湖 | 项城 | 丹阳 | 营口 | 五家渠 | 株洲 | 毕节 | 泸州 | 东阳 | 延安 | 莱芜 | 包头 | 滕州 | 临汾 | 云浮 | 咸阳 | 阳春 | 图木舒克 | 包头 | 铜陵 | 慈溪 | 肇庆 | 南通 | 濮阳 | 咸宁 | 仙桃 | 陵水 | 景德镇 | 巢湖 | 镇江 | 阿克苏 | 台北 | 揭阳 | 保亭 | 许昌 | 嘉善 | 江苏苏州 | 乐山 | 泰州 | 滨州 | 开封 | 长治 | 鸡西 | 庆阳 | 安康 | 南京 | 荣成 | 安阳 | 甘南 | 广安 | 山东青岛 | 兴安盟 | 肇庆 | 义乌 | 宁波 | 四川成都 | 乳山 | 辽宁沈阳 | 莱州 | 开封 | 广饶 | 库尔勒 | 遵义 | 广安 | 黑河 | 济南 | 乳山 | 七台河 | 邹平 | 汕头 | 琼中 | 琼中 | 东海 | 徐州 | 清徐 | 河北石家庄 | 嘉善 | 青海西宁 | 江门 | 酒泉 | 梅州 | 青海西宁 | 和田 | 临沂 | 五指山 | 神木 | 定州 | 钦州 | 大庆 | 漳州 | 玉环 | 长葛 | 仁怀 | 临夏 | 海西 | 庆阳 | 石嘴山 | 博罗 | 昌吉 | 朝阳 | 阿拉尔 | 乳山 | 屯昌 | 雄安新区 | 通辽 | 辽阳 | 吉林 | 阿克苏 | 海西 | 琼海 | 瑞安 | 七台河 | 锡林郭勒 | 诸城 | 日喀则 | 呼伦贝尔 | 吉林 | 菏泽 | 大兴安岭 | 宜昌 | 山东青岛 | 山西太原 | 来宾 | 唐山 | 黄冈 | 怒江 | 和田 | 呼伦贝尔 | 佳木斯 | 亳州 | 雅安 | 燕郊 | 白银 | 惠东 | 永新 | 漳州 | 江西南昌 | 贺州 | 柳州 | 屯昌 | 沭阳 | 海门 | 泸州 | 泰州 | 溧阳 | 莱州 | 丽江 | 济宁 | 禹州 | 德阳 | 海北 | 开封 | 济南 | 上饶 | 哈密 | 临夏 | 株洲 | 江苏苏州 | 寿光 | 雄安新区 | 保亭 | 周口 | 济南 | 崇左 | 昌吉 | 黄石 | 阿勒泰 | 宝鸡 | 鹤壁 | 荆门 | 随州 | 天门 |