この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 23571|答える: 1

[出典] Tenpay決済インターフェースのサイン暗号化方式の.NETバージョン

[リンクをコピー]
掲載地 2016/01/14 17:00:46 | | | |



  1. // tenpay.PayRequestHandler
  2. protected override void createSign()
  3. {
  4.         string parameter = base.getParameter("cmdno");
  5.         string parameter2 = base.getParameter("date");
  6.         string parameter3 = base.getParameter("bargainor_id");
  7.         string parameter4 = base.getParameter("transaction_id");
  8.         string parameter5 = base.getParameter("sp_billno");
  9.         string parameter6 = base.getParameter("total_fee");
  10.         string parameter7 = base.getParameter("fee_type");
  11.         string parameter8 = base.getParameter("return_url");
  12.         string parameter9 = base.getParameter("attach");
  13.         string parameter10 = base.getParameter("spbill_create_ip");
  14.         base.getParameter("key");
  15.         StringBuilder stringBuilder = new StringBuilder();
  16.         stringBuilder.Append("cmdno=" + parameter + "&");
  17.         stringBuilder.Append("date=" + parameter2 + "&");
  18.         stringBuilder.Append("bargainor_id=" + parameter3 + "&");
  19.         stringBuilder.Append("transaction_id=" + parameter4 + "&");
  20.         stringBuilder.Append("sp_billno=" + parameter5 + "&");
  21.         stringBuilder.Append("total_fee=" + parameter6 + "&");
  22.         stringBuilder.Append("fee_type=" + parameter7 + "&");
  23.         stringBuilder.Append("return_url=" + parameter8 + "&");
  24.         stringBuilder.Append("attach=" + parameter9 + "&");
  25.         if (!"".Equals(parameter10))
  26.         {
  27.                 stringBuilder.Append("spbill_create_ip=" + parameter10 + "&");
  28.         }
  29.         stringBuilder.Append("key=" + base.getKey());
  30.         string mD = MD5Util.GetMD5(stringBuilder.ToString(), this.getCharset());
  31.         base.setParameter("sign", mD);
  32.         base.setDebugInfo(stringBuilder.ToString() + " => sign:" + mD);
  33. }
コードをコピーします


MD5は、元の文字列に署名された後に加盟店の通信キーの内容を追加し、その結果得られる要約文字列が署名結果となるMD5操作を行う要約生成アルゴリズムです。 比較を容易にするため、署名結果は一様に大文字に変換されます。
MD5署名計算式:
sign = MD5(元の文字列 & キー = 商人キー)。 toUpperCase(大文字)
として:
        元の署名の列は次の通りです:input_charset=GBK&partner=1900000109&total_fee=1
マーチャントキーは以下の通りです:8db4a013a8b515349c307f1e448ce836
署名の結果は次の通りです:
sign=md5(input_charset=GBK&partner=1900000109&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d)= 8DB4A013A8B515349C307F1E448CE836


しかし、まだ無効な署名が残っており、どこに問題があるのか分かりません




先の:HTTPエラー403.14 - 禁止エラー
次に:アリババクラウド Linux ワンクリックインストールウェブ環境 V1.4.5 スタンダードエディション
 地主| 掲載地 2016/08/15 11:18:17 |
MD5暗号化前のパラメータA-Zの配置
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com