1global class CyberSourceAPI implements blng.PaymentGateWay, blng.PaymentGateWays, blng.PaymentGateWayStatus
2{
3 // ============================================================================
4 // CONSTANT
5 // ============================================================================
6
7 // ============================================================================
8 // STATIC VARIABLES
9 // ============================================================================
10
11 // Attribute to implement singleton pattern for CyberSource class
12 private static CyberSource CyberSourceInstance;
13
14 // ============================================================================
15 // VARIABLES
16 // ============================================================================
17 //Billing sends following strings for the transactions
18 private static final String GENERATE_TOKEN = 'generateToken';
19 private static final String AUTHORIZE_TRANSACTION = 'authorizeTransaction';
20 private static final String CHARGE_TRANSACTION = 'chargeTransaction';
21 private static final String VOID_TRANSACTION = 'voidTransaction';
22 private static final String REFUND_TRANSACTION = 'refundTransaction';
23 private static final String CAPTURE_TRANSACTION = 'captureTransaction';
24 private static final String VOID_REFUND_TRANSACTION = 'voidRefundTransaction';
25 private static final String VOID_TOKEN_TRANSACTION = 'voidTokenTransaction';
26 private static final String GET_PAYMENT_STATUS = 'getPaymentStatus';
27 private static final String GET_REFUND_STATUS = 'getRefundStatus';
28 private static final String NON_REFERRED_REFUND = 'nonReferredRefund';
29 private static final String PROCESS_PAYMENTS = 'processPayments';
30 // ============================================================================
31 // Methods
32 // ============================================================================
33
34 global static Map<String, blng.TransactionResult> processPayments(Map<String, blng.TransactionParameter> mapOfTransactionParameterById, blng.PaymentGatewayParameter paymentGatewayParameter)
35 {
36 if(paymentGatewayParameter.getTransactionType() == GENERATE_TOKEN)
37 {
38 return generateToken(mapOfTransactionParameterById);
39 }
40 else if(paymentGatewayParameter.getTransactionType() == AUTHORIZE_TRANSACTION)
41 {
42 return authorizeTransaction(mapOfTransactionParameterById);
43 }
44 else if(paymentGatewayParameter.getTransactionType() == CHARGE_TRANSACTION)
45 {
46 return chargeTransaction(mapOfTransactionParameterById);
47 }
48 else if(paymentGatewayParameter.getTransactionType() == VOID_TRANSACTION)
49 {
50 return voidTransaction(mapOfTransactionParameterById);
51 }
52 else if(paymentGatewayParameter.getTransactionType() == REFUND_TRANSACTION)
53 {
54 return refundTransaction(mapOfTransactionParameterById);
55 }
56 else if(paymentGatewayParameter.getTransactionType() == CAPTURE_TRANSACTION)
57 {
58 return captureTransaction(mapOfTransactionParameterById);
59 }
60 else if(paymentGatewayParameter.getTransactionType() == VOID_REFUND_TRANSACTION)
61 {
62 return voidRefundTransaction(mapOfTransactionParameterById);
63 }
64 else if(paymentGatewayParameter.getTransactionType() == VOID_TOKEN_TRANSACTION)
65 {
66 return voidTokenTransaction(mapOfTransactionParameterById);
67 }
68 else if(paymentGatewayParameter.getTransactionType() == GET_PAYMENT_STATUS)
69 {
70 return getPaymentStatus(mapOfTransactionParameterById);
71 }
72 else if(paymentGatewayParameter.getTransactionType() == GET_REFUND_STATUS)
73 {
74 return getRefundStatus(mapOfTransactionParameterById);
75 }
76 else if(paymentGatewayParameter.getTransactionType() == NON_REFERRED_REFUND)
77 {
78 return nonReferredRefund(mapOfTransactionParameterById);
79 }
80
81 return NULL;
82 }
83}