Android微信支付获取二次签名Sign的方法

xiaoxiao2021-02-28  51

/**    * 获取sign签名    *    * @return    */   private String genPayReq() {      // 获取参数的值    PayReq request = new PayReq();    request.appId = ConstantsMember.APP_ID;    request.partnerId = ConstantsMember.MCHID;    request.prepayId = mPrepayId;    request.packageValue = "Sign=WXPay" ;    request.nonceStr = DataUtil.getGuid();    request.timeStamp = DataUtil.getTimeStamp();      // 把参数的值传进去SortedMap集合里面    SortedMap<Object, Object> parameters = new TreeMap<Object, Object>(); //  {appid=wx34df375d7dae8c90, noncestr=3BF34EF2CA4A462DB8D4EA48E785CDC3, //    package=Sign=WXPay, partnerid=1349967601, //    prepayid=wx2016070910354542c7155d4e0846850809, timestamp=1468031760}    parameters.put( "appid" , request.appId);    parameters.put( "noncestr" , request.nonceStr);    parameters.put( "package" , request.packageValue);    parameters.put( "partnerid" , request.partnerId);    parameters.put( "prepayid" , request.prepayId);    parameters.put( "timestamp" , request.timeStamp);      String characterEncoding = "UTF-8" ;    String mySign = createSign(characterEncoding, parameters);    System.out.println( "我的签名是:" + mySign);    return mySign;   }     /**    * 微信支付签名算法sign    *    * @param characterEncoding    * @param parameters    * @return    */   public static String createSign(String characterEncoding,     SortedMap<Object, Object> parameters) {      StringBuffer sb = new StringBuffer();    Set es = parameters.entrySet(); // 所有参与传参的参数按照accsii排序(升序)    Iterator it = es.iterator();    while (it.hasNext()) {     @SuppressWarnings ( "rawtypes" )     Map.Entry entry = (Map.Entry) it.next();     String k = (String) entry.getKey();     Object v = entry.getValue();     if ( null != v && ! "" .equals(v) && ! "sign" .equals(k)       && ! "key" .equals(k)) {      sb.append(k + "=" + v + "&" );     }    }    sb.append( "key=" + ConstantsMember.KEY); //KEY是商户秘钥    String sign = MD5Util.MD5Encode(sb.toString(), characterEncoding)      .toUpperCase();    return sign; // D3A5D13E7838E1D453F4F2EA526C4766        // D3A5D13E7838E1D453F4F2EA526C4766   }

以上就是本文的全部内容,亲测有效,希望对大家的学习有所帮助,也希望大家多多支持我的博客。

转载请注明原文地址: https://www.6miu.com/read-2631112.html

最新回复(0)