SXFPaySign.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.platform.yijia.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.alibaba.fastjson.parser.Feature;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.LinkedHashMap;
  9. import java.util.UUID;
  10. /**
  11. * 随行付,公共方法
  12. */
  13. public class SXFPaySign {
  14. //合作方私钥(替换成自己的)
  15. // public static final String privateKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM+4PMi2ZPqpeCQ1IIV8mWYmGubr3DoEEJ3W2oEu8bFMVVpK5Jx6WhQ9xR83OQW7lbMI+BbumilKXfHdHrW7gWvu7yB2dD50GbT6bZXXnuddui+BnS/Yc9QxFS+HLcOX8bsmgJ5P/4D1Klm4k3OOsGJ3CsLDuz8RwNlxwuhg8+lQIDAQAB";
  16. public static final String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMz7g8yLZk+ql4JDUghXyZZiYa5uvcOgQQndbagS7xsUxVWkrknHpaFD3FHzc5BbuVswj4Fu6aKUpd8d0etbuBa+7vIHZ0PnQZtPptldee5126L4GdL9hz1DEVL4ctw5fxuyaAnk//gPUqWbiTc46wYncKwsO7PxHA2XHC6GDz6VAgMBAAECgYEAgC2C1CQTPRvqk+0u3cKvbtdkR6Q+C5cpNFb/XAtC80dAwnYw+jfarYX2vlQi3pFMzeYGxqQpep3DP0qxWqBG8uu7Depw2HlWcw+6z68G3Vpkprx9FHnsy/ijCX/76HMmDmGN1r68FnDZXHKdaLZPQeNxDY3Hz83Quq04yav5Ah0CQQDoVoZZM6SyF+gz4/mg29UwkEXcn5uUARWo7QrO6vOsYzTEiNvNIlLFxd5xE2i9LAKKLWBtuaMovrdC4fHguQaLAkEA4dvINHcuehDHVzgS5I/6hB5PnQZOrnZFDZUd7woh9xUu9qQTxZpPcbfSpDFCKDbTknM1dn+7WpLk6Zd9YGyTXwJACXu2oh90gnxtUujkQIeYjRHmeBnfrMvaiXmbblSyu3+VIMyBRD85Z68q5CyposcQF3nArNnd6gTW0BkO2WBT/wJAUUGbA5UlOXEz5mMcGPLbtBCbn+iXAhk2uq49OLSyh4wtezqIinz7u/PgaoX2QTWIZJXiVCGcK/fRN2DzEG+/jQJAIQQFJNUX5i7aUS4By8xrffUpeTTiszu+WTU5Rz2jRoT8YwgqiqAWG9dNSggcfnJIz968a+Jg5s483y06mEEmjA==";
  17. //随行付公钥
  18. public static final String sxfPublic = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmsrFtFPTnEzfpJ/hDl5RODBxw4i9Ex3NmmG/N7A1+by032zZZgLLpdNh8y5otjFY0E37Nyr4FGKFRSSuDiTk8vfx3pv6ImS1Rxjjg4qdVHIfqhCeB0Z2ZPuBD3Gbj8hHFEtXZq8+msAFu/5ZQjiVhgs5WWBjh54LYWSum+d9+wIDAQAB";
  19. /**
  20. * 封装传参信息,增加公共信息,增加业务信息
  21. * @param reqData
  22. * @return
  23. */
  24. public static String getSXFPay(JSONObject reqData ) {
  25. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
  26. String dataStr = df.format(new Date());
  27. ApiRequestBean<JSONObject> reqBean = new ApiRequestBean<JSONObject>();
  28. reqBean.setOrgId("77563944");//合作机构id
  29. reqBean.setReqId(UUID.randomUUID().toString().replaceAll("-", ""));//请求id 订单号
  30. reqBean.setSignType("RSA");//签名类型
  31. reqBean.setTimestamp(dataStr);//请求时间
  32. reqBean.setVersion("1.0");//版本
  33. //将业务参数存放在 JSON 对象中
  34. reqBean.setReqData(reqData);
  35. String req = JSONObject.toJSONString(reqBean);
  36. System.out.println("req:" + req);
  37. return req;
  38. }
  39. /**
  40. *封装组织加密串
  41. */
  42. public static String getSignContent(String req){
  43. System.out.println("req:" + req);
  44. //此处不要改变reqData里面值的顺序用LinkedHashMap
  45. HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
  46. //组装加密串
  47. String signContent = RSASignature.getOrderContent(reqMap);
  48. return "";
  49. }
  50. }