diff --git a/ServerDocument.md b/ServerDocument.md index 0849971..d1e69f3 100644 --- a/ServerDocument.md +++ b/ServerDocument.md @@ -35,4 +35,43 @@ sig: 签名 第三方server端返回值: - 如果第三方验证成功,则返回字符串:success即可。 \ No newline at end of file + 如果第三方验证成功,则返回字符串:success即可。 + + +3.签名算法 +-------------------------------- + + +···java + + /** + * 签名算法 + * @param userOrder + * @param key + * @return + */ + private String sig(UserOrder userOrder, String key) { + + SortedSet allParams = Sets.newTreeSet(); + try { + + allParams.add(Constants.Keys.ORDER_ID + "=" + URLEncoder.encode(userOrder.getId()+"", "utf-8")); + allParams.add(Constants.Keys.APPID + "=" + URLEncoder.encode(userOrder.getAppId()+"", "utf-8")); + allParams.add(Constants.Keys.USER_ID + "=" + URLEncoder.encode(userOrder.getUserId()+"", "utf-8")); + allParams.add(Constants.Keys.PRODUCT + "=" + URLEncoder.encode(userOrder.getProduct(), "utf-8")); + + allParams.add(Constants.Keys.EXTRA_INFO + "=" + URLEncoder.encode(userOrder.getExtraInfo(), "utf-8")); + allParams.add(Constants.Keys.CURRENCY + "=" + URLEncoder.encode(userOrder.getCurrency(), "utf-8")); + allParams.add(Constants.Keys.AMOUNT + "=" + URLEncoder.encode(userOrder.getAmount()+"", "utf-8")); + allParams.add(Constants.Keys.REAL_AMOUNT + "=" + URLEncoder.encode(userOrder.getRealAmount()+"", "utf-8")); + + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + String params = Joiner.on("&").join(allParams) + key; + log.info("sig:" + params); + String computedToken = DigestUtils.md5DigestAsHex(params.getBytes()); + return computedToken; + } +··· \ No newline at end of file