forked from AuthorizeNet/sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMerchant.java
More file actions
303 lines (264 loc) · 7.87 KB
/
Merchant.java
File metadata and controls
303 lines (264 loc) · 7.87 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
package net.authorize;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;
import net.authorize.Result;
import net.authorize.data.arb.Subscription;
import net.authorize.util.BasicXmlDocument;
import net.authorize.util.HttpClient;
/**
* Container to hold authentication credentials.
*
* The Merchant is also responsible for creating transactions and
* posting them to the gateway are performed through the Merchant.
*
*/
public class Merchant implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String CP_VERSION = "1.0"; // card present version
public static final int MAX_LOGIN_LENGTH = 20;
public static final int MAX_TRANSACTION_KEY_LENGTH = 16;
private Environment environment = Environment.SANDBOX;
private String login;
private String transactionKey;
private boolean allowPartialAuth = false;
private MarketType marketType = null;
private DeviceType deviceType = null;
private String userRef = null;
private String MD5Value = null;
private Merchant() {
}
public static Merchant createMerchant(Environment environment, String login,
String transactionKey) {
Merchant merchant = new Merchant();
merchant.environment = environment;
merchant.setLogin(login);
merchant.setTransactionKey(transactionKey);
return merchant;
}
/**
* Get the login.
*
* @return the login
*/
public String getLogin() {
return login;
}
/**
* Set the login.
*
* @param login the login to set
*/
private void setLogin(String login) {
this.login = login;
}
/**
* Get the transaction key.
*
* @return the transactionKey
*/
public String getTransactionKey() {
return transactionKey;
}
/**
* Set the transaction key.
*
* @param transactionKey the transactionKey to set
*/
private void setTransactionKey(String transactionKey) {
this.transactionKey = transactionKey;
}
/**
* Return true if the merchant has been enabled, via the SDK, to allow
* partial AUTH transactions.
*
* @return the allowPartialAuth
*/
public boolean isAllowPartialAuth() {
return allowPartialAuth;
}
/**
* Indicates if the transaction is enabled for partial authorization.
* Including this field in the transaction request overrides your account
* configuration.
*
* @param allowPartialAuth
* the allowPartialAuth to set
*/
public void setAllowPartialAuth(boolean allowPartialAuth) {
this.allowPartialAuth = allowPartialAuth;
}
/**
* Get the Environment that transactions will be posted against.
*
* @return the environment
*/
public Environment getEnvironment() {
return environment;
}
/**
* Set the environment that transactions will be posted against.
*
* @param environment the environment to set
*/
public void setEnvironment(Environment environment) {
this.environment = environment;
}
/**
* Return true if the environment is a sandbox type environment.
*
* @return true if in the sandbox environment
*/
public boolean isSandboxEnvironment() {
return (environment!=null&&
(Environment.SANDBOX.equals(this.environment)));
}
/**
* @return the marketType
*/
public MarketType getMarketType() {
return marketType;
}
/**
* @param marketType the marketType to set
*/
public void setMarketType(MarketType marketType) {
this.marketType = marketType;
}
/**
* @return the deviceType
*/
public DeviceType getDeviceType() {
return deviceType;
}
/**
* @param deviceType the deviceType to set
*/
public void setDeviceType(DeviceType deviceType) {
this.deviceType = deviceType;
}
/**
* @return the MD5Value
*/
public String getMD5Value() {
return MD5Value;
}
/**
* @param MD5Value the MD5Value to set
*/
public void setMD5Value(String MD5Value) {
this.MD5Value = MD5Value;
}
/**
* Get the UserRef value.
*
* @return the userRef
*/
public String getUserRef() {
return userRef;
}
/**
* Set the userRef for Card Present transactions.
*
* @param userRef the userRef to set
*/
public void setUserRef(String userRef) {
this.userRef = userRef;
}
/**
* Creates a new AIM Transaction.
*
* @param transactionType
* @param amount
*
* @return A newly created Transaction will be returned.
*/
public net.authorize.aim.Transaction createAIMTransaction(TransactionType transactionType,
BigDecimal amount) {
return net.authorize.aim.Transaction.createTransaction(this, transactionType, amount);
}
/**
* Creates a new SIM Transaction.
*
* @param transactionType
* @param fingerPrintSequence
* @param amount
*
* @return A newly created Transaction will be returned.
*/
public net.authorize.sim.Transaction createSIMTransaction(TransactionType transactionType,
long fingerPrintSequence, BigDecimal amount) {
return net.authorize.sim.Transaction.createTransaction(this, transactionType,
fingerPrintSequence, amount);
}
/**
* Creates a new ARB Transaction.
*
* @param transactionType
*
* @return A newly created Transaction will be returned.
*/
public net.authorize.arb.Transaction createARBTransaction(net.authorize.arb.TransactionType transactionType, Subscription subscription) {
return net.authorize.arb.Transaction.createTransaction(this, transactionType, subscription);
}
/**
* Creates a new CIM Transaction.
*
* @param transactionType
*
* @return A newly created Transaction will be returned.
*/
public net.authorize.cim.Transaction createCIMTransaction(net.authorize.cim.TransactionType transactionType) {
return net.authorize.cim.Transaction.createTransaction(this, transactionType);
}
/**
* Creates a new Reporting Transaction.
*
* @param transactionType
*
* @return A newly created Transaction will be returned.
*/
public net.authorize.reporting.Transaction createReportingTransaction(net.authorize.reporting.TransactionType transactionType) {
return net.authorize.reporting.Transaction.createTransaction(this, transactionType);
}
/**
* Post a Transaction request to the payment gateway.
*
* @param transaction
*
* @return Result is returned with each post.
*
*/
public net.authorize.Result<?> postTransaction(Transaction transaction) {
Result<Transaction> result = null;
// retrieve the raw mappings from the HttpClient for AIM/SIM
if(transaction instanceof net.authorize.aim.Transaction ||
transaction instanceof net.authorize.sim.Transaction) {
// check if this is a Card Present transaction
if(transaction instanceof net.authorize.aim.Transaction &&
((net.authorize.aim.Transaction)transaction).isCardPresent()) {
BasicXmlDocument responseXML = HttpClient.executeXML(this.environment, transaction);
result = net.authorize.aim.cardpresent.Result.createResult(transaction, responseXML);
} else {
Map<ResponseField, String> responseMap = HttpClient.execute(this.environment, transaction);
result = net.authorize.aim.Result.createResult(transaction, responseMap);
}
}
else if (transaction instanceof net.authorize.arb.Transaction) {
BasicXmlDocument response = HttpClient.executeXML(this.environment, transaction);
result = net.authorize.arb.Result.createResult(transaction, response);
}
else if (transaction instanceof net.authorize.cim.Transaction) {
BasicXmlDocument response = HttpClient.executeXML(this.environment, transaction);
result = net.authorize.cim.Result.createResult(transaction, response);
}
else if (transaction instanceof net.authorize.reporting.Transaction) {
BasicXmlDocument response = HttpClient.executeXML(this.environment, transaction);
result = net.authorize.reporting.Result.createResult(transaction, response);
}
return result;
}
}