1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
@Transactional
@Override
public void saveCreditCard(CreditCardInfoDto creditCardInfo) {
Member member = null;
if (creditCardInfo.getMemberId() != null) {
member = memberRepository.findOne(creditCardInfo.getMemberId());
}
List<PaymentGatewayConfig> paymentGateways = paymentGatewayConfigRepository.findAll();
if (paymentGateways != null && !paymentGateways.isEmpty()) {
PaymentGatewayConfig paymentGateway = paymentGateways.get(0);
String paymentGatewayKey = null;
if (member != null) {
paymentGatewayKey = member.getPaymentGatewayKey();
}
ResolveData resdata = null;
ResolverReceipt resreceipt = null;
if (paymentGatewayKey == null) {
ResAddCC resAddCC = new ResAddCC(creditCardInfo.getCreditCard(), creditCardInfo.getDateExpiration(), "7");
ResolverHttpsPostRequest mpgReq = new ResolverHttpsPostRequest(paymentGateway.getHost(), paymentGateway.getStoreId(), paymentGateway.getApiToken(), resAddCC);
resreceipt = mpgReq.getResolverReceipt();
resdata = resreceipt.getResolveData();
member.setPaymentGatewayKey(resreceipt.getDataKey());
} else {
ResUpdateCC resUpdateCC = new ResUpdateCC(member.getPaymentGatewayKey());
resUpdateCC.setPan(creditCardInfo.getCreditCard());
resUpdateCC.setExpdate(creditCardInfo.getDateExpiration());
ResolverHttpsPostRequest mpgReq = new ResolverHttpsPostRequest(paymentGateway.getHost(), paymentGateway.getStoreId(), paymentGateway.getApiToken(), resUpdateCC);
resreceipt = mpgReq.getResolverReceipt();
resdata = resreceipt.getResolveData();
}
if (resdata != null) {
//success
if(Boolean.valueOf(resreceipt.getComplete()) && !Boolean.valueOf(resreceipt.getTimedOut())){
member.setPaymentGatewayKey(resreceipt.getDataKey());
memberRepository.save(member);
}else{
//payment refused
log.error("saveCreditCard: " + member.getMemberId() + " payment refused error code: " + resreceipt.getResponseCode());
}
Operation operation = createOperation(resreceipt);
operationRepository.save(operation);
}
}
} |
Partager