1. 程式人生 > >微信統一下單介面body為中文,報【簽名錯誤】的解決辦法

微信統一下單介面body為中文,報【簽名錯誤】的解決辦法

該處記錄的是本人在開發過程中遇到的問題以及解決的方案。

現象:微信支付,調微信的統一下單介面,本地jetty 和 tomcat 都可以調通,並能完成支付。但是部署到centos伺服器上之後,就一直報簽名錯誤。

解決:經反覆查詢,確定是請求介面時傳送的資料中,body是中文亂碼,進而查詢到xmap.toXML 方法生成xml 字串時,中文就已經是亂碼了。反覆修改編碼格式,無濟於事。

最終原因:tomcat搞得事,本地的tomcat是預設獲取本地機器的編碼格式,伺服器的tomcat使用的是伺服器的編碼格式。所以:在伺服器tomcat bin資料夾下修改

catalina.sh配置,JAVA_OPTS=

"$JAVA_OPTS -Dfile.encoding=utf-8"。就可以了。

詳細說明:Tomcat執行jvm的編碼,為了保持專案在不同的環境下執行正常,不出編碼的問題,

Tomcat啟動的時候必須指定編碼,設定的編碼必須與開發的時候設定的編碼一致。

修改jvm編碼

Linux環境

在catalina.sh配置

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"

Windows環境

在catalina.bat配置

set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8

相關推薦

統一下單介面body中文簽名錯誤解決辦法

該處記錄的是本人在開發過程中遇到的問題以及解決的方案。 現象:微信支付,調微信的統一下單介面,本地jetty 和 tomcat 都可以調通,並能完成支付。但是部署到centos伺服器上之後,就一直報簽名錯誤。 解決:經反覆查詢,確定是請求介面時傳送的資料中,body是中文亂

支付 統一下單 欄位 body 中文簽名錯誤解決方案(C# SDK)

方案一 如果你是從微信支付官網下載的 .NET C#【微信支付】API對應的SDK 呼叫示例 檢視原始碼,會發現這個SDK中的 WxPayData 的類的 CalcHMACSHA256Hash 簽名方法採用的是  Encoding.Default 

支付 統一下單 字段 body 中文簽名錯誤解決方案(C# SDK)

def salt ext var pri utf8 () rap vat 方案一 如果你是從微信支付官網下載的 .NET C#【微信支付】API對應的SDK 調用示例 查看源碼,會發現這個SDK中的 WxPayData 的類的 CalcHMACSHA256Hash 簽名

統一下單 欄位 body 中文簽名錯誤解決辦法

此問題是本人開發時遇到的,如對您無幫助,請忽略。微信統一下單,進行申請二維碼時,提交xml檔案時 始終 報【簽名錯誤】,網上看到各種解決辦法,試了但沒作用。我本地專案統一編碼格式為UTF-8。tomcat未設定,看到網上有人通過設定tomcat解決的,但我設定後沒解決。記錄一

php 統一下單 介面例項

  <?php class wechatAppPay {  //介面API URL字首 const API_URL_PREFIX = 'https://api.mch.weixin.qq.com'; //下單地址URL const UNIFIEDORDER_URL =

統一下單body中文導致簽名失敗和亂碼的問題

呼叫微信統一下單介面時如果返回簽名錯誤,可以先去官方提供的線上簽名去校驗一下,這裡只能校驗簽名演算法有沒有問題。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1如果這裡校驗簽名沒有問題,但實際呼叫返回的

統一下單支付 伺服器程式碼和js程式碼

/**  *  * 類名稱:WeixinController.java 類描述: 微信公共平臺開發  *  * @version 1.0  */ @Controller @RequestMapping(value = "/pay") public class Weixi

統一下單_公眾號支付_掃碼支付

微信掃碼支付流程圖:https://pay.weixin.qq.com/wiki/doc/api/native_sl.php?chapter=6_5&index=4 微信公眾號支付流程圖:https://pay.weixin.qq.com/wiki/doc/api/

重磅 l 全國首例三級分銷被認定傳銷三級分銷“身世”揭祕(下)

 全國首例微信三級分銷被認定為傳銷案 2016年4月6日,中國工商報曝出全國首例微信三級分銷被認定為傳銷一案。這在之前案例中從無出現過,所以非常值得大家對照審視。之前所謂的微信傳銷般所涉金額較高,只不過是利用了微信這種渠道進行傳銷,比如前文所述的南京陳志華組織、領導傳銷活

支付之掃碼支付開發:我遇到的坑及解決辦法(附:Ecshop 支付外掛)

      前段時間幫一個朋友的基於ecshop開發的商城加入微信掃描支付功能,本以為是很簡單的事兒——下載官方sdk或開發幫助文件,按著裡面的做就ok了,誰知折騰了兩三天的時間才算搞定,中間也帶著疑問在網上找了不少技術文章,卻發現都只是比較粗略的寫他們是怎麼開發接入的,並沒有解決我遇到的問題...,唉,有時

app支付之回撥多次以及不回撥的解決辦法

前面一篇文章我是在做app支付的時候寫的,做app支付完成之後寫的,這篇主要是支付完成之後的坑。 首先,支付完成之後,主要就是回撥,我首先遇到的就是支付完成之後,並沒有收到資訊,然後就是各種網上找問答。後面突然發現,資料庫裡面無緣無故的竟然有了回撥的資訊(這個我是在回撥頁面

java中sql查詢條件中文rs.nextfalse查詢不到結果的解決辦法

經過查詢資料,發現這是字符集編碼問題,我們只需要按下面設定程式碼就可以了: String url = "jdbc:mysql://localhost:3306/dictionary?useUnicod

TP5開發地址驗證中的配置失敗或者token驗證失敗的解決辦法

在使用TP5做微信開發時大家一定遇到過配置失敗或者token驗證失敗的情況,而且使用日誌列印引數進行簽名演算法驗證都是真確的。 這個問題讓我苦惱了好久。最終發現,在我們驗證簽名是輸出了隨機字串  echo $echoStr;時如果沒有關閉trace就會出現如下的輸出 這個

手機端掃描二維碼直接打開外部瀏覽器訪問網頁的解決辦法

mic ont 我們 提高自己 微信跳轉 4gl 復制 png itl 想必大家會經常碰到網頁鏈接在微信內無法打開和微信內無法打開app下載頁的情況。通常這種情況微信會給個提示 “已停止訪問該網址” ,那麽導致這個情況的因素有哪些呢,主要有以下四點

關於重寫父類介面的方法是冒出去除@Override的解決辦法

最近公司沒有事情,琢磨搞畢業設計。參照公司架構,搭起來後,dao方法中,impl繼承父類介面。一直冒紅。讓我取消這個@Override  註解。。。。 原因是 java 編譯器 版本過低,不支援。。。          解決辦法就是。右擊Properties 找到 java

在應用程式級別以外使用註冊 allowDefinition='MachineToApplication' 的節是錯誤解決辦法

在ASP.NET程式中,我們是可以在各個目錄放置不同的web.config檔案的,但有時在非根目錄先放置的web.config檔案會導致這樣的錯誤提示: "在應用程式級別之外使用註冊為 allowDefinition='MachineToApplication' 的節是錯誤的。如果在 IIS 中沒有將虛

總結小程式JAVA伺服器統一下單請求BODY欄位中文簽名錯誤總結

之前網上找了好久此問題都沒有解決,總結一下基本有一下幾種: 1.更改Tomcat配置 編碼改為UTF-8 2.String body  = new String("body中文欄位值".toString().getBytes("ISO8859-1"),"UTF-8");更改欄位編碼 簽

android 支付body中文字元簽名錯誤

微信支付訂單生產方法: /** * 根據您的訂單資訊 生成 微信產品支付訂單資訊 */ private String createWeChatOrder() { StringBuffer xml = new StringBuffer();

小程式支付統一下單介面

微信小程式——支付 1.通過code獲取openId code:使用者登入憑證(有效期五分鐘)。開發者需要在開發者伺服器後臺呼叫 api,使用 code 換取 openid 和 session_key 等資訊 openid: 使用者唯一標識 session_key: 會

淺析支付:統一下單介面

本文是【淺析微信支付】系列文章的第五篇,主要講解如何呼叫統一下單介面生成預支付單及調起支付頁面。 淺析微信支付系列已經更新四篇了喲~,沒有看過的朋友們可以看一下哦。 上面是本文的前置文章,有前面幾篇文章的基礎以後看會更加明瞭,如果已經看過的小夥伴可以忽略。 1、什麼是[統一下單介面]? 首先我們要明