AuthorizationRequest Class
Namespace
Usage
Example
Creating a buildAuthRequest class to store information about the authorization request.
1private String buildAuthRequest(commercepayments.AuthorizationRequest authRequest) {
2 // Multiply amount by 100.0 to convert to cents
3 String requestBody = createRequestBody(String.ValueOf((authRequest.amount*100.0).intValue()), authRequest);
4 return requestBody;
5
6 private String createRequestBody(String amount, commercepayments.AuthorizationRequest authRequest) {
7 JSONGenerator jsonGeneratorInstance = JSON.createGenerator(true);
8 String currencyIso = authRequest.currencyIsoCode;
9 commercepayments.AuthApiPaymentMethodRequest paymentMethod = authRequest.paymentMethod;
10 commercepayments.GatewayErrorResponse error;
11 // Write data to the JSON string.
12 jsonGeneratorInstance.writeStartObject();
13 jsonGeneratorInstance.writeStringField('merchantAccount', '{!$Credential.Username}');
14 jsonGeneratorInstance.writeStringField('reference', authRequest.comments == null ? 'randomstring' : authRequest.comments);
15
16 if(currencyIso == null) {
17 currencyIso = UserInfo.getDefaultCurrency();
18 }
19
20 jsonGeneratorInstance.writeFieldName('amount');
21 jsonGeneratorInstance.writeStartObject();
22 jsonGeneratorInstance.writeStringField('value', amount);
23 jsonGeneratorInstance.writeStringField('currency', currencyIso);
24 jsonGeneratorInstance.writeEndObject();
25
26 commercepayments.CardPaymentMethodRequest cardPaymentMethod;
27 if(paymentMethod != null) {
28 cardPaymentMethod = paymentMethod.cardPaymentMethod;
29 if (cardPaymentMethod != null) {
30 if (cardPaymentMethod.CardCategory != null) {
31 if (commercepayments.CardCategory.CreditCard == cardPaymentMethod.CardCategory) {
32 jsonGeneratorInstance.writeFieldName('card');
33 jsonGeneratorInstance.writeStartObject();
34 if (cardPaymentMethod.cvv != null)
35 jsonGeneratorInstance.writeStringField('cvc', String.ValueOf(cardPaymentMethod.cvv));
36 if (cardPaymentMethod.cardholdername != null)
37 jsonGeneratorInstance.writeStringField('holderName', cardPaymentMethod.cardholdername);
38 if (cardPaymentMethod.cardnumber != null)
39 jsonGeneratorInstance.writeStringField('number', cardPaymentMethod.cardnumber);
40 if (cardPaymentMethod.expiryMonth != null && cardPaymentMethod.expiryYear != null ) {
41 String expMonth = ((String.ValueOf(cardPaymentMethod.expiryMonth)).length() == 1 ? '0' : '') + String.ValueOf(cardPaymentMethod.expiryMonth);
42 jsonGeneratorInstance.writeStringField('expiryMonth', expMonth);
43 jsonGeneratorInstance.writeStringField('expiryYear', String.ValueOf(cardPaymentMethod.expiryYear));
44 }
45 jsonGeneratorInstance.writeEndObject();
46 } else {
47 //Support for other card type
48 }
49 } else {
50 throw new SampleValidationException('Required Field Missing : CardCategory');
51 }
52 } else {
53 throw new SampleValidationException('Required Field Missing : CardPaymentMethod');
54 }
55 } else {
56 throw new SampleValidationException('Required Field Missing : PaymentMethod');
57 }
58 jsonGeneratorInstance.writeEndObject();
59 return jsonGeneratorInstance.getAsString();
60 }AuthorizationRequest Constructors
The following are constructors for AuthorizationRequest.
AuthorizationRequest(amount)
Signature
global AuthorizationRequest(Double amount)
Parameters
- amount
- Type: Double
- The amount of the authorization.
AuthorizationRequest Properties
The following are properties for AuthorizationRequest.
paymentMethodData
This field is populated when AuthorizationInput specifies a saved payment method. Accessible using paymentMethodData on AuthorizationRequest. The map contains these fields from SavedPaymentMethod: GatewayToken, Type, GatewayReference, and StandardEntryCode for direct gateway interaction without querying the database. This field is supported only for saved payment methods of type card.
Signature
public Map<String,String> paymentMethodData {get; set;}
AuthorizationRequest Methods
The following are methods for AuthorizationRequest.
equals(obj)
Signature
global Boolean equals(Object obj)
Parameters
- obj
- Type: Object
- External object whose key is to be validated.
Return Value
Type: Boolean
hashCode()
Signature
global Integer hashCode()
Return Value
Type: Integer