AuthorizationRequest クラス
名前空間
使用方法
このクラスには、トランザクション承認要求に関する情報が含まれます。ゲートウェイアダプターは、承認 JSON 要求を作成するときにこのクラスから項目を読み取り、支払ゲートウェイに送信します。このクラスのオブジェクトは、PaymentGatewayContext クラスの getPaymentRequest() をコールすることで使用できます。
例
承認要求に関する情報を保存する buildAuthRequest クラスの作成。
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 のコンストラクター
AuthorizationRequest のコンストラクターは次のとおりです。
AuthorizationRequest(amount)
署名
global AuthorizationRequest(Double amount)
パラメーター
- amount
- 型: Double
- 承認の金額。
AuthorizationRequest のプロパティ
AuthorizationRequest のプロパティは次のとおりです。