Bläddra i källkod

修改随行付聚合支付接口

XF--LRQYEJOKYDS\Administrator 4 år sedan
förälder
incheckning
6741e9bc04

+ 109 - 124
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -1,5 +1,4 @@
 package com.platform.yijia.controller;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
@@ -14,7 +13,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
-
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -23,7 +21,7 @@ import java.util.*;
 @Controller
 @RequestMapping("/api")
 public class PayController {
-    //private static Logger logger =(Logger) LoggerFactory.getLogger(PayController.class);
+    private static Logger logger =(Logger) LoggerFactory.getLogger(PayController.class);
     @Resource
     private PayOrderService payOrderService;
     @Resource
@@ -40,98 +38,111 @@ public class PayController {
         ResultData resultData =null;
         String token=payInfoRequest.getToken();//token
         String userType=payInfoRequest.getUserType();//用户登录类型 1 公众号。2 小程序
-        String ordNo=payInfoRequest.getOrdNo();//订单号
+       // String ordNo=payInfoRequest.getOrdNo();//订单号
+        Integer orderId =payInfoRequest.getOrderId();
         //根据token 和登录类型 身份验证
         AppUserInfo appUserInfo =new AppUserInfo();
         //订单类型 是小程序还是公众号
         appUserInfo.setUserType(userType);
         if(userType.equals("1")){
             //1 是公众号
-            appUserInfo.setBlogOpenid(token);
+            appUserInfo.setBlogToken(token);
         }else if(userType.equals("2")){
             //2是小程序
             appUserInfo.setMinaToken(token);
         }
         List<AppUserInfo> appUserInfoList =appUserInfoService.Authentication(appUserInfo);
-
-        if(appUserInfoList!=null&&appUserInfoList.size()>0){
+        if(appUserInfoList!=null&&appUserInfoList.size()==1){
             //调用聚合支付
             try{
-                //将业务参数存放在 JSON 对象中
-                JSONObject reqData = new JSONObject();
-                reqData.put("ordNo", ordNo); //商户订单号
-                reqData.put("mno", "399200427027644"); //商户编号
-                //reqData.put("subMechId", ""); //子商户号
-                reqData.put("amt", "0.01"); //订单总金额
-                //reqData.put("discountAmt", ""); //参与优惠金额
-                //reqData.put("unDiscountAmt", ""); //不参与优惠金额
-                reqData.put("payType", "WECHAT"); //支付渠道
-                reqData.put("payWay", "02"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
-                //reqData.put("timeExpire", "10"); //订单失效时间, 以分钟为单位
-                //reqData.put("limitPay", "00"); //限制卡类型: 00-全部 01-限定不能使 用信用卡支付 默认值 00
-                reqData.put("subject", "聚合支付测试"); //订单标题
-                //reqData.put("hbFqNum", "6"); //花呗分期数,仅可上送 6 或 12
-                reqData.put("tradeSource", "01"); //交易来源 01服务商,02收银台,03硬件
-                reqData.put("trmIp", "172.16.2.1");//商家ip地址
-                // reqData.put("customerIp", ""); //持卡人ip地址,银联js支付时必传
-                reqData.put("userId", "2088101117955611"); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
-                //reqData.put("subAppid", "wx24210004370ec43b"); //微信子公众号
-                //reqData.put("outFrontUrl", ""); //js 支付,前台 成功通知地址
-                //reqData.put("outFrontFailUrl", ""); //js 支付,前台 事变通知地址
-                //reqData.put("notifyUrl", ""); //回调地址
-                //reqData.put("needReceipt", "00"); //电子发票功能 微信开具电子 发票使用
-                //reqData.put("ledgerAccountFlag", "00"); //是否做分账 分账交易使 用;00:做; 01:不做;不传默认为不做分账
-                //reqData.put("ledgerAccountEffectTime", "00"); //分账有效时间 单位为天;是 否做分账选择 00 时该字段必传
-                // reqData.put("ruleId", "00"); //同 步 分 账 规 则 id
-                // reqData.put("fusruleId", "00"); //同步分账规则
-                //reqData.put("ylTrmNo", ""); //银联终端号
-                //reqData.put("terminalId", ""); //TQ机具编号
-                reqData.put("deviceNo ", "1111"); //设备号
-                reqData.put("identityFlag", ""); //是否是实名支付
+                //根据订单号查询订单信息
+                PayOrder payOrder=payOrderService.searchPayOrder(orderId);
+                if(payOrder!=null){
+                    //将业务参数存放在 JSON 对象中
+                    JSONObject reqData = new JSONObject();
+                    reqData.put("ordNo", payOrder.getOrderNo()); //商户订单号
+                    reqData.put("mno", "399201207783923"); //商户编号
+                    //reqData.put("subMechId", ""); //子商户号
+                    reqData.put("amt", payOrder.getAmt()); //订单总金额
+                    //reqData.put("discountAmt", ""); //参与优惠金额
+                    //reqData.put("unDiscountAmt", ""); //不参与优惠金额
+                    reqData.put("payType", "WECHAT"); //支付渠道
+                    if(userType.equals("1")){
+                        //1 是公众号
+                        reqData.put("payWay", "02"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
+                        reqData.put("userId", appUserInfoList.get(0).getBlogOpenid()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
+                    }else if(userType.equals("2")){
+                        //2是小程序
+                        reqData.put("payWay", "03"); //支付方式  02 公众号/服 务窗/js支付 03 小程序
+                        reqData.put("userId", appUserInfoList.get(0).getMinaOpenid()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
+                    }
+                    //reqData.put("timeExpire", "10"); //订单失效时间, 以分钟为单位
+                    //reqData.put("limitPay", "00"); //限制卡类型: 00-全部 01-限定不能使 用信用卡支付 默认值 00
+                    reqData.put("subject", "聚合支付测试"); //订单标题
+                    //reqData.put("hbFqNum", "6"); //花呗分期数,仅可上送 6 或 12
+                    reqData.put("tradeSource", "01"); //交易来源 01服务商,02收银台,03硬件
+                    reqData.put("trmIp", "172.16.2.1");//商家ip地址
+                    // reqData.put("customerIp", ""); //持卡人ip地址,银联js支付时必传
+                      //reqData.put("subAppid", "wx24210004370ec43b"); //微信子公众号
+                    //reqData.put("outFrontUrl", ""); //js 支付,前台 成功通知地址
+                    //reqData.put("outFrontFailUrl", ""); //js 支付,前台 事变通知地址
+                    //reqData.put("notifyUrl", ""); //回调地址
+                    //reqData.put("needReceipt", "00"); //电子发票功能 微信开具电子 发票使用
+                    //reqData.put("ledgerAccountFlag", "00"); //是否做分账 分账交易使 用;00:做; 01:不做;不传默认为不做分账
+                    //reqData.put("ledgerAccountEffectTime", "00"); //分账有效时间 单位为天;是 否做分账选择 00 时该字段必传
+                    // reqData.put("ruleId", "00"); //同 步 分 账 规 则 id
+                    // reqData.put("fusruleId", "00"); //同步分账规则
+                    //reqData.put("ylTrmNo", ""); //银联终端号
+                    //reqData.put("terminalId", ""); //TQ机具编号
+                    //reqData.put("deviceNo ", "1111"); //设备号
+                  //  reqData.put("identityFlag", ""); //是否是实名支付
 //                reqData.put("buyerIdType", "IDCARD"); //证件类型
 //                reqData.put("buyerIdNo", "410523198701054018"); //证件号
-//                reqData.put("buyerName", "张三"); //买家姓名
-//                reqData.put("mobileNum", ""); //手机号
-                reqData.put("extend", ""); //备用
-                String req= SXFPaySign.getSXFPay(reqData);
-                // logger.debug("参数信息:"+req);
-                System.out.println("req:" + req);
-                //此处不要改变reqData里面值的顺序用LinkedHashMap
-                HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
-                //组装加密串
-                String signContent = RSASignature.getOrderContent(reqMap);
-                System.out.println("拼接后的参数:" + signContent);
-                //   logger.debug("拼接后的参数:"+signContent);
-                //sign
-                String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
-                System.out.println("============签名:" + sign);
-                reqMap.put("sign", sign);
-                String reqStr = JSON.toJSONString(reqMap);
-                System.out.println("请求参数:" + reqMap);
-                System.out.println("请求参数:" + reqStr);
-                //调用第三方接口地址
-                String url = "https://openapi-test.tianquetech.com/order/jsapiScan";//测试地址
-                // String url = "https://openapi.suixingpay.com/order/jsapiScan";//生产地址
-                String resultJson = HttpUtils.connectPostUrl(url, reqStr);
-                System.out.println("返回信息:" + resultJson);
-                //   logger.debug("返回信息:"+resultJson);
-                //不要对reqData排序 所以用LinkedHashMap
-                HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
-                if ("0000".equals(result.get("code"))) {
-                    //验签
-                    String signResult = result.get("sign").toString();
-                    result.remove("sign");
-                    String resultStr = RSASignature.getOrderContent(result);
-                    System.out.println(resultStr);
-                    //sign
-                    String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
-                    System.out.println("resultSign:" + resultSign);
+                   // reqData.put("buyerName", "张三"); //买家姓名
+                   // reqData.put("mobileNum", ""); //手机号
+                   // reqData.put("extend", ""); //备用
+                    String req= SXFPaySign.getSXFPay(reqData);
+                     logger.debug("参数信息:"+req);
+                    System.out.println("req:" + req);
+                    //此处不要改变reqData里面值的顺序用LinkedHashMap
+                    HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
                     //组装加密串
-                    if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
-                        System.out.println("===================验签成功==============");
+                    String signContent = RSASignature.getOrderContent(reqMap);
+                    System.out.println("拼接后的参数:" + signContent);
+                       logger.debug("拼接后的参数:"+signContent);
+                    //sign
+                    String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+                    System.out.println("============签名:" + sign);
+                    reqMap.put("sign", sign);
+                    String reqStr = JSON.toJSONString(reqMap);
+                    System.out.println("请求参数:" + reqMap);
+                    System.out.println("请求参数:" + reqStr);
+                    //调用第三方接口地址
+                    //String url = "https://openapi-test.tianquetech.com/order/jsapiScan";//测试地址
+                    String url = "https://openapi.suixingpay.com/order/jsapiScan";//生产地址
+                    String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+                    System.out.println("返回信息:" + resultJson);
+                    //   logger.debug("返回信息:"+resultJson);
+                    //不要对reqData排序 所以用LinkedHashMap
+                    HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+                    if ("0000".equals(result.get("code"))) {
+                        //验签
+                        String signResult = result.get("sign").toString();
+                        result.remove("sign");
+                        String resultStr = RSASignature.getOrderContent(result);
+                        System.out.println(resultStr);
+                        //sign
+                        String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+                        System.out.println("resultSign:" + resultSign);
+                        //组装加密串
+                        if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                            System.out.println("===================验签成功==============");
+                        }
                     }
+                    resultData=ResultData.success(result);
+                }else {
+                    resultData=ResultData.error(CodeMsg.YEWU_FAIL,"未查询到订单");
                 }
-                resultData=ResultData.success(result);
             }catch (Exception e){
                 resultData=ResultData.error(CodeMsg.YEWU_FAIL,"订单支付失败");
                 e.printStackTrace();
@@ -153,7 +164,7 @@ public class PayController {
         Gson gson =new Gson();
         try {
             JSONObject reqData = new JSONObject();
-            reqData.put("mno", payCloseRequestParamter.getMno()); //商户编号
+            reqData.put("mno","399200427027644"); //商户编号
             reqData.put("origOrderNo", payCloseRequestParamter.getOrigOrderNo());
             reqData.put("origUuid", payCloseRequestParamter.getOrigUuid());
             String req= SXFPaySign.getSXFPay(reqData);
@@ -189,7 +200,6 @@ public class PayController {
                 if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
                     System.out.println("===================验签成功==============");
                 }
-
             }
             results=gson.toJson(result);
         }catch (Exception e){
@@ -197,7 +207,6 @@ public class PayController {
         }
         return results;
     }
-
     /**
      * 异步回调通知
      */
@@ -255,7 +264,6 @@ public class PayController {
         reqData.put("recFeeAmt",recFeeAmt);
         reqData.put("recFeeRate",recFeeRate);
         reqData.put("timeStamp",timeStamp);
-        reqData.put("sign",sign);
         reqData.put("bizCode",bizCode);
         reqData.put("bizMsg",bizMsg);
         reqData.put("openid",openid);
@@ -263,51 +271,28 @@ public class PayController {
         reqData.put("subMechId",subMechId);
         reqData.put("refBuyerAmt",refBuyerAmt);
         reqData.put("extend",extend);
-
         //根据回调信息,先进行验签,验签后修改状态
         Gson gson =new Gson();
-        JSONObject req = new JSONObject();
-      //  String resultJson = gson.toJson(callBack);
-       // System.out.println("返回信息:" + resultJson);
         //不要对reqData排序 所以用LinkedHashMap
-//        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
-//        if ("0000".equals(result.get("code"))) {
-            //验签
-//            String signResult = result.get("sign").toString();
-//            result.remove("sign");
-//            String resultStr = RSASignature.getOrderContent(result);
-//            System.out.println(resultStr);
-            //sign
-           // String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent,SXFPaySign.privateKey));
-            //组装加密串
-//            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
-//                System.out.println("===================验签成功==============");
-                //验签成功,修改订单状态
-               // List<PayOrder> list =payOrderService.getPayOrderList(callBack.getOrdNo());
-//                if(list!=null&&list.size()==1){
-//                    String status = list.get(0).getStatus();
-//                    //状态为未支付 1  修改状态为已支付
-//                    if(status.equals("1")){
-//                        PayOrder payOrder=new PayOrder();
-//                     //   payOrder.setOrderNo(callBack.getOrdNo());
-//                        payOrder.setStatus("2");
-//                        //根据修改状态
-//                        payOrderService.getUpdatePayOrder(payOrder);
-//                    }
-//
-//                }
-                req.put("code","success");
-                req.put("msg","成功");
-           // }
-        //}
-//        try {
-//            response.setContentType("application/json; charset=UTF-8");
-//            response.setCharacterEncoding("UTF-8");
-//            response.getWriter().print(req);
-//            response.getWriter().flush();
-//            response.getWriter().close();
-//        }catch (Exception e){
-//            e.printStackTrace();
-//        }
+        HashMap<String, Object> result = JSON.parseObject(gson.toJson(reqData), LinkedHashMap.class, Feature.OrderedField);
+        //验签
+        String resultStr = RSASignature.getOrderContent(result);
+        System.out.println(resultStr);
+        if (RSASignature.doCheck(resultStr, sign, SXFPaySign.sxfPublic)) {
+            System.out.println("===================验签成功==============");
+            //验签成功,修改订单状态
+            List<PayOrder> list = payOrderService.getPayOrderList(ordNo);
+            if (list != null && list.size() == 1) {
+                String status = list.get(0).getStatus();
+                //状态为未支付 1  修改状态为已支付
+                if (status.equals("1")) {
+                    PayOrder payOrder = new PayOrder();
+                    //   payOrder.setOrderNo(callBack.getOrdNo());
+                    payOrder.setStatus("2");
+                    //根据修改状态
+                    payOrderService.getUpdatePayOrder(payOrder);
+                }
+            }
+        }
     }
 }

+ 96 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/PayOrderMapper.java

@@ -0,0 +1,96 @@
+package com.platform.yijia.dao;
+
+import com.platform.yijia.pojo.PayOrder;
+import com.platform.yijia.pojo.PayOrderExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PayOrderMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    long countByExample(PayOrderExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int deleteByExample(PayOrderExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int deleteByPrimaryKey(Integer orderId);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int insert(PayOrder record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int insertSelective(PayOrder record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    List<PayOrder> selectByExample(PayOrderExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    PayOrder selectByPrimaryKey(Integer orderId);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int updateByExampleSelective(@Param("record") PayOrder record, @Param("example") PayOrderExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int updateByExample(@Param("record") PayOrder record, @Param("example") PayOrderExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKeySelective(PayOrder record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table pay_order
+     *
+     * @mbg.generated
+     */
+    int updateByPrimaryKey(PayOrder record);
+}

+ 9 - 0
YijiaRestful/src/main/java/com/platform/yijia/param/request/PayInfoRequest.java

@@ -10,6 +10,15 @@ public class PayInfoRequest {
     private String oilStationId;//油站id
     private String userType;//类型
     private String ordNo;//订单号
+    private Integer orderId;//订单id
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
 
     public String getOrdNo() {
         return ordNo;

+ 6 - 2
YijiaRestful/src/main/java/com/platform/yijia/utils/SXFPaySign.java

@@ -16,7 +16,10 @@ import java.util.UUID;
 public class SXFPaySign {
     //合作方私钥(替换成自己的)
     // public static final String privateKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM+4PMi2ZPqpeCQ1IIV8mWYmGubr3DoEEJ3W2oEu8bFMVVpK5Jx6WhQ9xR83OQW7lbMI+BbumilKXfHdHrW7gWvu7yB2dD50GbT6bZXXnuddui+BnS/Yc9QxFS+HLcOX8bsmgJ5P/4D1Klm4k3OOsGJ3CsLDuz8RwNlxwuhg8+lQIDAQAB";
-    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==";
+    //测试环境私钥
+    //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==";
+    //生产环境私钥
+    public static final String privateKey="MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAPCpA8iF1tYerDYcZTGiPkRHlQKlkM2vy752cLZydVUrfKkGQaSMBHbmgK7LgenQ6cjWl2mM5zLOWxqNKxsUj/xMbkAdYXKtYy1nL6NLo3RI+cXbUB5tNiS4ojSwjFg4AHIfjGyBnnQar/dulfuNJ3QBsfHBDR/DsIfXUaBcmsoFAgMBAAECgYEA8A7YHEUNWUb9Z3iJpKn/TKLOy/YVbGdoaFPC+OtRiSS40+3OuvGEXoptYG7V50MigNk17e7EjNR04hZhIkEvoX/d9KLIKRtZUOMga6GhqD/PqRpgKq8JObMkvJ1U7KeEimUqBeukbvzBUJrVQT1RpbXmX3zpf0kj7l/FPOfZD8ECQQD9RpXw7gtv96N6WIF2k42UMAMLVuGivTW2bZzxP6TCD/FeZMG2JNy3nydCc2v6GuGDQZ8WCQIpzK72gMzLrYVVAkEA8z+w+Ao8Y6BxX8P/5GZg4x1ZHqQOfsrWbC6iMeIenLkAgMpEPYLYpm5nZ0db7pf5OU037bSXxQoauQnjOM8x8QJBANzQGk94Kg6PFz7GRPDNScTlavIK6CMK1PZccFTASPNMFQJX067qSmfoYMEFgiEGKJBXuMvsRK+OnQeaWXJFsRUCQFva9Uz1MJC+iZGMRhlNv9CDyJ+VfBPNLON1SLJlnQG5qsL3noVL39wZXNrXS5Pxt5831aLhy14Qzr6JSVCujUECQQDD0KIfodS9dxKnstJaaX2B5aYXPYsI+4PBMeFw4inl+9JFJb85U1SmuYAkGPj8OFBtxkhzeHXkvD5aMKj0cUVs";
     //随行付公钥
     public static final String sxfPublic = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmsrFtFPTnEzfpJ/hDl5RODBxw4i9Ex3NmmG/N7A1+by032zZZgLLpdNh8y5otjFY0E37Nyr4FGKFRSSuDiTk8vfx3pv6ImS1Rxjjg4qdVHIfqhCeB0Z2ZPuBD3Gbj8hHFEtXZq8+msAFu/5ZQjiVhgs5WWBjh54LYWSum+d9+wIDAQAB";
 
@@ -29,7 +32,8 @@ public class SXFPaySign {
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
         String dataStr = df.format(new Date());
         ApiRequestBean<JSONObject> reqBean = new ApiRequestBean<JSONObject>();
-        reqBean.setOrgId("77563944");//合作机构id
+        //reqBean.setOrgId("77563944");//测试 合作机构id
+        reqBean.setOrgId("73153713");//生产合作机构id
         reqBean.setReqId(UUID.randomUUID().toString().replaceAll("-", ""));//请求id 订单号
         reqBean.setSignType("RSA");//签名类型
         reqBean.setTimestamp(dataStr);//请求时间