连连支付签名工具类
接连连支付的同学可以参考下
package com.lanmei.third.lianlian.utils;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;import org.apache.log4j.Logger;import com.alibaba.fastjson.JSONObject;/*** 连连银通签名工具类*/
public class SignUtil {private static Logger logger = Logger.getLogger(SignUtil.class);/*** 返回签名*/public static String genRSASign(JSONObject reqObj) {// 生成待签名串String sign_src = genSignData(reqObj);logger.info("商户[" + reqObj.getString("oid_partner") + "]待签名原串" + sign_src);//商户私钥 商户通过openssl工具生成公私钥,公钥通过商户站上传,私钥用于加签,替换下面的值return TraderRSAUtil.sign("私钥", sign_src);}/*** 生成待签名串*/public static String genSignData(JSONObject jsonObject) {StringBuffer content = new StringBuffer();// 按照key做首字母升序排列List keys = new ArrayList(jsonObject.keySet());Collections.sort(keys, String.CASE_INSENSITIVE_ORDER);for (int i = 0; i < keys.size(); i++) {String key = (String) keys.get(i);// sign 和ip_client 不参与签名if ("sign".equals(key)) {continue;}String value = (String) jsonObject.getString(key);// 空串不参与签名if (ValidatorUtils.isNull(value)) {continue;}content.append((i == 0 ? "" : "&") + key + "=" + value);}String signSrc = content.toString();if (signSrc.startsWith("&")) {signSrc = signSrc.replaceFirst("&", "");}return signSrc;}/*** 生成待签名串* * @param paramMap* @return*/public static String genSignDataExcludeCardNo(JSONObject jsonObject) {StringBuffer content = new StringBuffer();// 按照key做首字母升序排列List keys = new ArrayList(jsonObject.keySet());Collections.sort(keys, String.CASE_INSENSITIVE_ORDER);for (int i = 0; i < keys.size(); i++) {String key = (String) keys.get(i);// sign 和ip_client 不参与签名if ("sign".equals(key)) {continue;}if ("card_no".equals(key)) {continue;}String value = (String) jsonObject.getString(key);// 空串不参与签名if (ValidatorUtils.isNull(value)) {continue;}content.append((i == 0 ? "" : "&") + key + "=" + value);}String signSrc = content.toString();if (signSrc.startsWith("&")) {signSrc = signSrc.replaceFirst("&", "");}return signSrc;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
