提交 56bb9d7c authored 作者: Whispa's avatar Whispa

commit commit

上级 efab0723
......@@ -27,8 +27,8 @@ public class Charge {
//for all charges
public JSONObject charge(String client){
this.apiConnection = new ApiConnection(ed.getChargeEndPoint());
public JSONObject charge(String client,String endpoint){
this.apiConnection = new ApiConnection(endpoint);
String alg="3DES-24";
......
......@@ -16,6 +16,7 @@ public class Endpoints {
String url;
public String BANK_ENDPOINT;
public static String CHARGE_ENDPOINT;
public static String CHARGE_MOBILE_ENDPOINT;
public static String CARD_VALIDATE_ENDPOINT;
public static String ACCOUNT_VALIDATE_ENDPOINT;
public static String TIMEOUT_ENDPOINT;
......@@ -47,6 +48,7 @@ public class Endpoints {
BANK_ENDPOINT= url+"flwv3-pug/getpaidx/api/flwpbf-banks.js?json=1";
CHARGE_ENDPOINT =url+"flwv3-pug/getpaidx/api/charge";
CHARGE_MOBILE_ENDPOINT =url+"flwv3-pug/getpaidx/api/charge?type=mobile_money_rwand";
CARD_VALIDATE_ENDPOINT = url+"flwv3-pug/getpaidx/api/validatecharge";
ACCOUNT_VALIDATE_ENDPOINT=url+"flwv3-pug/getpaidx/api/validate";
TIMEOUT_ENDPOINT=url+"flwv3-pug/getpaidx/api/charge?use_polling=1";
......@@ -75,7 +77,13 @@ public class Endpoints {
return CHARGE_ENDPOINT;
}
public String getValidateCardChargeEndPoint(){
public String getChargeMobileEndpoint() {
init();
return CHARGE_MOBILE_ENDPOINT;
}
public String getValidateCardChargeEndPoint(){
init();
return CARD_VALIDATE_ENDPOINT;
......
......@@ -122,6 +122,59 @@ public class FlutterWaveController extends Controller {
}
@PostMapping("/payMobile")
public ResponseEntity<String> payForOrderByPhone(@RequestParam("orderId") String orderId, @RequestBody FlutterWaveCard flutterWaveCard) {
RaveConstant.PUBLIC_KEY = PUBLIC_KEY;
RaveConstant.SECRET_KEY = SECRET_KEY;
RaveConstant.ENVIRONMENT = Environment.LIVE; //or live
// Result result = new Result();
Optional<TbCfOrder> byId = repository.findById(orderId);
JSONObject json = new JSONObject();
if (byId.isPresent()) {
//TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + orderId);
TbCfOrder orderEntity = byId.get();
//判断这个订单是否已支付
if (OrderStatusEnum.PAID.getValue().equals(orderEntity.getPayStatus())) {
json.put("message", "Order paid!");
json.put("code", ResultCodeEnum.ORDER_PAY_ERROR.getCode());
}else {
try {
CardCharge ch = new CardCharge();
ch.setCardno(flutterWaveCard.getCard())
.setCvv(flutterWaveCard.getCvv())
.setCurrency("USD")
.setCountry("NG")
.setAmount(orderEntity.getRealityPay().toString())
.setRedirect_url(REDIRECT_URL+"/"+orderId)
.setExpiryyear(flutterWaveCard.getYear())
.setExpirymonth(flutterWaveCard.getMonth())
.setEmail(flutterWaveCard.getEmail())
.setTxRef(orderId);
JSONObject chargevisa = ch.chargeMobileMoney();
JSONObject object = chargevisa.getJSONObject("data");
boolean b = object != null && object.has("authurl");
String message = !b && object != null && object.has("message") ? object.getString("message") : ResultCodeEnum.SERVICE_ERROR.getDesc();
json.put("data", chargevisa);
json.put("code", b ? ResultCodeEnum.SUCCESS.getCode() : ResultCodeEnum.SERVICE_ERROR.getCode());
json.put("message", b ? ResultCodeEnum.SUCCESS.getDesc() : message);
} catch (Exception e) {
json.put("code", ResultCodeEnum.ORDER_PAY_ERROR.getCode()).put("message", e.getMessage());
logger.error(e.getMessage(), e);
}
}
}
return new ResponseEntity<>(json.toString(), HttpStatus.OK);
}
@GetMapping("/notify/{orderId}")
public Result verifyFromFlutter(@PathVariable("orderId") String orderId) {
return verifyPay(orderId);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论