|
@@ -570,7 +570,7 @@ public class PayOrderServiceImpl implements PayOrderService {
|
|
public String paymentCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
|
|
public String paymentCallback(String data) throws NoSuchAlgorithmException, InvalidKeySpecException {
|
|
log.info("******************** 支付异步回调 start *******************");
|
|
log.info("******************** 支付异步回调 start *******************");
|
|
// 公钥解密
|
|
// 公钥解密
|
|
- JSONObject json = PayUtil.decryptDataPublic(data, PayUtil.publicKey);
|
|
|
|
|
|
+ JSONObject json = PayUtil.publicKeyDecrypt(data, PayUtil.publicKey);
|
|
log.info("公钥解密>>>>>>" + json);
|
|
log.info("公钥解密>>>>>>" + json);
|
|
// 公钥验签
|
|
// 公钥验签
|
|
String signaa = json.getString("sign");
|
|
String signaa = json.getString("sign");
|
|
@@ -805,4 +805,55 @@ public class PayOrderServiceImpl implements PayOrderService {
|
|
}
|
|
}
|
|
return "SUCCESS";
|
|
return "SUCCESS";
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 判断此次支付是否完成
|
|
|
|
+ *
|
|
|
|
+ * @param orderId 订单id
|
|
|
|
+ * @param paySuccessCounter 付款次数
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<String> payWhetherSuccess(Integer orderId, Integer paySuccessCounter) {
|
|
|
|
+ Integer dbPayCounter = payOrderMapper.getDbPaySuccessCounter(orderId);
|
|
|
|
+ if (paySuccessCounter.equals(dbPayCounter)) {
|
|
|
|
+ return ResponseJson.error(-2, "支付失败", "付款次数异常");
|
|
|
|
+ } else if (dbPayCounter > paySuccessCounter) {
|
|
|
|
+ return ResponseJson.success("支付成功");
|
|
|
|
+ } else {
|
|
|
|
+ return ResponseJson.error("支付异常", null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询本次支付订单结果
|
|
|
|
+ *
|
|
|
|
+ * @param mbOrderId 平台唯一流水号
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public ResponseJson<JSONObject> getPayOrderResult(String mbOrderId) {
|
|
|
|
+ // 时间戳
|
|
|
|
+ long time = System.currentTimeMillis() / 1000;
|
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
|
+ json.put("merAccount", PayUtil.merAccount);
|
|
|
|
+ json.put("mbOrderId", mbOrderId);
|
|
|
|
+ json.put("time", time);
|
|
|
|
+ // 生成RSA签名
|
|
|
|
+ String sign = PayUtil.getPaySign(json, PayUtil.merKey);
|
|
|
|
+ json.put("sign", sign);
|
|
|
|
+ String data = "";
|
|
|
|
+ try {
|
|
|
|
+ // 私钥加密
|
|
|
|
+ data = PayUtil.privateKeyEncrypt(json, PayUtil.merKey);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("【查询本次支付订单结果】>>>>>错误信息:", e);
|
|
|
|
+ }
|
|
|
|
+ JSONObject result = PayUtil.httpGet("https://platform.mhxxkj.com/paygateway/mbpay/order/query/v1_1", PayUtil.merAccount, data);
|
|
|
|
+ String code = result.getString("code");
|
|
|
|
+ if (!"000000".equals(code)) {
|
|
|
|
+ String msg = result.getString("msg");
|
|
|
|
+ log.info("【查询本次支付订单结果】>>>>>>>>>>>>>>第三方查询订单失败>msg:" + msg);
|
|
|
|
+ return ResponseJson.error(msg, null);
|
|
|
|
+ }
|
|
|
|
+ return ResponseJson.success(result);
|
|
|
|
+ }
|
|
}
|
|
}
|