Skip to content

Commit 7904fae

Browse files
Merge pull request #9 from cybersource-tpi/main
v24.1.1
2 parents dea3f05 + fd0cb57 commit 7904fae

File tree

86 files changed

+826
-543
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+826
-543
lines changed

Jenkinsfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ podTemplate(
109109
reportName : 'Code Coverage Reports'
110110
])
111111

112-
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: '[email protected]'])
112+
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: ''])
113113
notifySlack(this, "cybersource-jenkins", false)
114114
}
115115
}

Jenkinsfile.publish

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ podTemplate(
145145
currentBuild.result = 'FAILURE'
146146
throw any
147147
} finally {
148-
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: '[email protected]'])
148+
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: ''])
149149
notifySlack(this, "cybersource-jenkins", false)
150150
}
151151
}}

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ISV OCC Payment
1+
# Cybersource Official
22

33
## Documentation
44

Binary file not shown.

documentation/business-services/decision-manager.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@ In case you would like [disable DM checks](https://developer.cybersource.com/api
2424

2525
In case DM is enabled for a particular payment method and transaction is marked for Review authorization is still considered successfully from OCC standpoint. Webhook response code will still be '1000' and additional response reason (`AUTHORIZED_PENDING_REVIEW`) will be returned back to OCC so that interested parties (e.g. OMS) can detect such transaction in OCC being marked for review.
2626

27+
In case DM is enabled for a particular payment method and transaction is rejected after authorization with response reason(`AUTHORIZED_RISK_DECLINED`).Authorization Reversal will be triggered automatically.
28+
29+
2730
From the referenced document we can follow the recommended approach for `Review` decisions:
2831

29-
1. A shopper enters credit card information and submits the order
32+
1. A shopper enters card information and submits the order
3033
2. OCC processes the order and triggers the payment webhook with transaction type “Authorize” to request authorization for the order
3134
3. The Payment Integration Service receives this request and can function as the integration point for fraud detection
3235
4. The Payment Integration Service invokes the fraud detection service along with authorization
-63.3 KB
Loading

documentation/images/merchantId.png

864 KB
Loading

documentation/installation.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ Once the module is installed, head back to the Oracle Commerce Cloud Admin to co
8686
After successful deployment you will need to enable payment gateway:
8787

8888
- Go to OCC Admin -> Settings -> Payment Processing
89-
- Open 'Payment gateways' tab and choose 'ISV OCC Gateway' from the list
89+
- Open 'Payment gateways' tab and choose 'Cybersource Official' from the list
9090
- Select 'Payment Gateway Enabled' option
9191
- Configure gateway settings by providing values (e.g. merchant credentials) for particular channel (Preview, Storefront, Agent)
9292
- Save Changes

documentation/introduction.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ The custom payment plugin solution provides an integration layer between OCC and
1616
- Refund
1717
- Tokenized card payment based on Microform v2
1818
- Payer authentication support (3D Secure)
19-
- Network tokenization
20-
- Store tokenized credit card against user profile
19+
- Network Tokens
20+
- Store tokenized credit/debit card against user profile
2121
- Payments using stored credit cards
2222
2. Online Authorizations
2323
- Supported services

documentation/occ.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# ISV OCC Payment Plugin
2+
# Cybersource Official Payment Plugin
33

44
## Oracle Commerce Cloud
55

@@ -11,7 +11,7 @@
1111
| [Package Contents](package-contents.md) | Detailed explanation of each package included into solution. Documents available payment gateway settings |
1212
| [Installation](installation.md) | Go through installation steps to deploy and configure payment extensions to OCC |
1313
| _Payment Services_ | |
14-
| [Credit Card](payment-services/credit-card.md) | Detailed information about credit card payment services, e.g.Microform integration, Payer Authentication (3DSecure) etc |
14+
| [Credit Card](payment-services/credit-card.md) | Detailed information about card payment services, e.g.Microform integration, Payer Authentication (3DSecure) etc |
1515
| [GooglePay](payment-services/googlepay.md) | Documents GooglePay integration and related technical details |
1616
| [ApplePay](payment-services/applepay.md) | Documents ApplePay integration and related technical details. Includes ApplePay setup steps |
1717
| [Settlement and Refund](payment-services/settlement-refund.md) | Additional payment services to allow fulfillment processes to settle or refund particular transactions when needed |
@@ -23,7 +23,7 @@
2323

2424
## Audience and Purpose
2525

26-
This document is written for merchants who want to use Payment and Value added Business services. This document provides an overview for integrating ISV OCC payment services into Oracle Commerce Cloud platform.
26+
This document is written for merchants who want to use Payment and Value added Business services. This document provides an overview for integrating Cybersource Official payment services into Oracle Commerce Cloud platform.
2727

2828
## Conventions
2929

documentation/package-contents.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ The `payment-gateway` package hold gateway settings definition according to [Sup
5656
.
5757
├── ext.json
5858
├── gateway
59-
│   └── isv-occ-gateway // name of the gateway
59+
│   └── isv-occ-gateway
6060
│   ├── config
6161
│   │   ├── config.json // configuration properties
6262
│   │   └── locales
@@ -69,7 +69,7 @@ The `gateway/isv-occ-gateway/gateway.json` file has the following definition:
6969

7070
```json
7171
{
72-
"provider": "ISV OCC Gateway",
72+
"provider": "Cybersource Official",
7373
"paymentMethodTypes": ["generic", "card"],
7474
"transactionTypes": {
7575
"generic": ["initiate", "retrieve", "authorization", "void", "refund"],
@@ -178,8 +178,6 @@ server-extension
178178
┃ ┗ Resources_en.properties
179179
┣ src
180180
┃ ┣ common
181-
┃ ┃ ┣ logging
182-
┃ ┃ ┃ ┗ occLogger.ts
183181
┃ ┃ ┣ genericDispatcher.ts
184182
┃ ┃ ┗ index.ts
185183
┃ ┣ controllers
@@ -199,6 +197,7 @@ server-extension
199197
┃ ┃ ┣ paymentMethods.ts
200198
┃ ┃ ┣ paymentRefund.ts
201199
┃ ┃ ┣ paymentRouter.js
200+
┃ ┃ ┣ payments.ts
202201
┃ ┃ ┣ report.ts
203202
┃ ┃ ┗ webhookRouter.ts
204203
┃ ┣ errors
@@ -231,9 +230,11 @@ server-extension
231230
┃ ┃ ┃ ┃ ┣ generateKey.ts
232231
┃ ┃ ┃ ┃ ┣ paymentCommand.ts
233232
┃ ┃ ┃ ┃ ┣ processAuthorizationReversal.ts
233+
┃ ┃ ┃ ┃ ┣ processAutoAuthorizationReversal.ts
234234
┃ ┃ ┃ ┃ ┣ processCapture.ts
235235
┃ ┃ ┃ ┃ ┣ processPayment.ts
236-
┃ ┃ ┃ ┃ ┗ processRefund.ts
236+
┃ ┃ ┃ ┃ ┣ processRefund.ts
237+
┃ ┃ ┃ ┃ ┗ processWebhookSubscription.ts
237238
┃ ┃ ┃ ┣ converters
238239
┃ ┃ ┃ ┃ ┣ request
239240
┃ ┃ ┃ ┃ ┃ ┣ mappers
@@ -313,6 +314,7 @@ server-extension
313314
┃ ┃ ┃ ┃ ┣ deviceFingerprintSessionIdValidator.ts
314315
┃ ┃ ┃ ┃ ┗ transientTokenValidator.ts
315316
┃ ┃ ┃ ┣ applePayService.ts
317+
┃ ┃ ┃ ┣ autoAuthReversalService.ts
316318
┃ ┃ ┃ ┣ deviceFingerprintService.ts
317319
┃ ┃ ┃ ┣ flexService.ts
318320
┃ ┃ ┃ ┣ payerAuthSetupService.ts

documentation/payment-services/applepay.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ Default values:
4949

5050
You will need to go through the steps from the [Configure Apple Pay on the web](https://help.apple.com/developer-account/#/dev1731126fb) in order to setup ApplePay payments
5151

52-
1. Go to EBC portal -> Payment Configuration -> Digital Payment Solutions
52+
1. Go to Business Centre -> Payment Configuration -> Digital Payment Solutions
5353
2. Configure ApplePay by generating certificate signing request (CSR) and providing Apple Merchant ID
5454
3. `applePayMerchantId` gateway setting should get the value of the introduced Apple Merchant ID
5555
4. Download CSR
5656
5. Create merchant identify in your ApplePay dev account (as per docs)
57-
6. Create Apple Pay Payment Processing Certificate for the identity you have just created (upload the certificate file downloaded from EBC in previous step)
57+
6. Create Apple Pay Payment Processing Certificate for the identity you have just created (upload the certificate file downloaded from Business Centre in previous step)
5858
7. Create merchant identity certificate. This certificate is used on the Web when a session validation request is triggered.
5959
8. Register merchant domain and verify it (https://help.apple.com/developer-account/#/dev1731126fb). Merchant domain is where an application is being deployed to.
6060

documentation/payment-services/credit-card.md

+24-19
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
3. [Payer Authentication](#payer-authentication)
1010
1. [UI integration details](#ui-integration-details-1)
1111
2. [Backend (SSE) integration details](#backend-sse-integration-details-1)
12-
3. [Strong Customer Authentication (SCA)](#strong-customer-authentication-sca)
13-
4. [Network Tokenization](#network-tokenization)
12+
3. [Decision Manager with Payer Authentication](#decision-manager-with-payer-authentication)
13+
4. [Strong Customer Authentication (SCA)](#strong-customer-authentication-sca)
14+
4. [Network Tokens](#network-tokenization)
1415
5. [Capturing funds during authorization (SALE)](#capturing-funds-during-authorization-sale)
1516

1617
## Description
@@ -29,7 +30,7 @@ The following applies to credit card payments:
2930

3031
- Credit card payments using [Microform v2](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken/FlexMicroform.html). The transient token represents both card number (PAN) and CVV. Only token, card expiration date and masked card number going to be sent in a webhook request.
3132
- Payer Authentication (3D Secure)
32-
- Shopper can choose to save credit card as part of profile
33+
- Shopper can choose to save credit/debit card as part of profile
3334
- Subscribe to Network Token life cycle updates
3435
- Shopper can pay with a saved card
3536

@@ -63,13 +64,13 @@ Default values:
6364

6465
### Microform Card Payments
6566

66-
The following describes the end to end use case with an option to save credit card:
67+
The following describes the end to end use case with an option to save credit/debit card:
6768

6869
1. Shopper chooses to checkout
69-
2. Shopper enters credit card information
70-
3. Credit card information is sent to payment provider client side and a one time (transient) use token is returned.
70+
2. Shopper enters card information
71+
3. Credit/Debit card information is sent to payment provider client side and a one time (transient) use token is returned.
7172
4. Save the one time client token and include the client token in the payment part of the order
72-
5. Shopper chooses to save the credit card for later
73+
5. Shopper chooses to save the card for later
7374
6. Shopper places the order
7475
7. Payment webhook is triggered with transaction type "0100" (authorize). The following properties sent in the request:
7576
- Transient token
@@ -92,7 +93,7 @@ Below are credit card related components from Payment Widget:
9293

9394
The application is structured based on OSF especifications.
9495

95-
Inside the components there is the list of widgets that are necessary to integrate the credit card payment using Cybersource.
96+
Inside the components there is the list of widgets that are necessary to integrate the card payment using Cybersource.
9697
Inside the endpoints folder there is specific call to REST apis
9798
Fetchers are used to call APIs before the widget is redered. This are used to load data that widgets need before they can be rendered in the page. Fetchers can be global or local that means that some fetcher will be contained inside the components/widget folder (where widget is your custom widget).
9899
Actions are used to call APIs but when the user performeces an action like clicking a button.
@@ -105,7 +106,7 @@ REST API for Oracle Commerce Cloud 22D [Oracle Commerce Cloud](https://docs.orac
105106

106107
Microform Integration v2 Documentation [Microform v2](https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/microform-integ-v2.html)
107108

108-
The structure that follows contain all the components necessary to run Credit Card Payment in OSF.
109+
The structure that follows contain all the components necessary to run Card Payment in OSF.
109110

110111
```text
111112
plugins
@@ -190,8 +191,8 @@ plugins
190191

191192

192193
- Before Payment Widget is rendered available payment methods are retrieved from SSE `/ccstorex/custom/isv-payment/v2/paymentMethods` endpoint. Saved credit cards are also retrieved from OCC in case user is logged-in.
193-
- `Card` component renders by default list of saved cards if it is not empty and user is logged-in. Otherwise credit card form is rendered
194-
- Credit card form is managed by `IsvCheckoutCardDetails` component. Saved cards are managed by `IsvCheckoutSavedCards` component. Shopper can switch between both components to choose preferable way to pay.
194+
- `Card` component renders by default list of saved cards if it is not empty and user is logged-in. Otherwise credit/debit card form is rendered
195+
- Card Payment form is managed by `IsvCheckoutCardDetails` component. Saved cards are managed by `IsvCheckoutSavedCards` component. Shopper can switch between both components to choose preferable way to pay.
195196
- Microform is initialized by fetching keys from SSE using `/ccstorex/custom/isv-payment/v2/keys` endpoint
196197
- Transient token is generated client side and is then included into payment details during order submission
197198
- In case shopper pays with saved card only savedCardId is sent and transient token is not generated. Shopper can also choose to set card as default
@@ -203,7 +204,7 @@ List of related controllers:
203204
- `server-extension/src/controllers/paymentMethods.ts` - return supported payment method configurations
204205
- `server-extension/src/controllers/flex.ts` - generate Microform keys
205206

206-
The list of handlers processing credit card Webhook requests in SSE can be found in `server-extension/src/services/payments/index.ts`
207+
The list of handlers processing credit/debit card Webhook requests in SSE can be found in `server-extension/src/services/payments/index.ts`
207208

208209
| **Operation** | **Handlers** | **Description** |
209210
|------------------|---------------------------------|------------------------------------------------------------------------------------------------------------------|
@@ -243,10 +244,10 @@ Payer authentication is enabled by default using `payerAuthEnabled` gateway sett
243244
Generally payer authentication services are executed together with credit card authorization:
244245

245246
1. PayerAuth setup is created using card information using `/ccstorex/custom/isv-payment/v2/payerAuth/setup` SSE endpoint
246-
2. Credit card is tokenized as per process described in the [Microform Card Payments](#microform-card-payments) section
247+
2. Credit/Debit card is tokenized as per process described in the [Microform Card Payments](#microform-card-payments) section
247248
3. Order is created and "Authorize" Webhook request is triggered
248249
4. Credit card Authorization service is called along with Payer Auth Enrollment
249-
5. In case credit card is enrolled in payer authentication, authorization is rejected with specific reason code (10000). The response from payment provider will contain all data needed to start consumer authentication flow in storefront
250+
5. In case card is enrolled in payer authentication, authorization is rejected with specific reason code (10000). The response from payment provider will contain all data needed to start consumer authentication flow in storefront
250251
6. Payer Auth data is included in Webhook response using custom payment properties
251252
7. In storefront Cardinal Cruise continues the consumer authentication flow with the custom payment properties returned in Webhook response.
252253
8. Popup window is displayed to finish consumer authentication
@@ -273,6 +274,10 @@ The following UI component contains Payer Authentication integration logic `plug
273274
- `server-extension/src/services/payments/converters/request/mappers/payerAuthEnrollMapper.ts` Including payer auth reference id into PSP card authorization request
274275
- `server-extension/src/services/payments/converters/request/mappers/payerAuthValidationMapper.ts` Including payer auth validation token into PSP card authorization request
275276

277+
#### Decision Manager with Payer Authentication
278+
You can use Decision Manager with payer authentication services to allow the risk of an order to determine when you need to invoke payer authentication.
279+
[Decision Manager with Payer Authentication](https://ebc.cybersource.com/content/ebc/docs/cybs/en-us/html/dm-develop/developer/all/so/oxy_ex-1/topics/c_Using_DM_With_Payer_Auth.html)
280+
276281
#### Strong Customer Authentication (SCA)
277282

278283
When `Payer Authentication` is enabled, if a transaction gets declined with the reason as Strong Customer Authentication required, then another request will be sent from Oracle Commerce Cloud automatically for the same order and the customer will be 3DS challenged.
@@ -283,13 +288,13 @@ In case 'Strong Customer Authentication' is enabled for credit cards, '10000' re
283288

284289
*Note:* The `scaEnabled` setting is applicable only if `Payer Authentication` is enabled.
285290

286-
### Network Tokenization
291+
### Network Tokens
287292

288-
A Network Token is a network scheme generated token, that represents customer card information for secure transactions that references a customer’s actual PAN.
293+
A Network Token is a card scheme generated token, that represents customer card information for secure transactions that references a customer’s actual PAN.
289294

290-
Before a MID can be enabled for Network Tokenization, it must be provisioned with a Token Requestor ID (TRID) for each card scheme.
295+
Before a MID can be enabled for Network Token, it must be provisioned with a Token Requestor ID (TRID) for each card scheme. Please contact your Cybersource representative or reseller to arrange for Network Tokens to be enabled on your Cybersource account.
291296

292-
Plug-in would need to subscribe to the necessary webhook notifications and ingest them for changes to the card. Subscription is created automatically when Authorization is processed, while the Webhook Subscription feature is enabled.
297+
Plug-in would need to subscribe to the necessary webhook notifications and ingest them for changes to the card. Webhook subscription to the Network Token life cycle updates is created when authorization is processed, while the Network Token Updates is enabled in the back office.
293298

294299
The following describes the Network Token update process:
295300

@@ -300,7 +305,7 @@ The following describes the Network Token update process:
300305
5. The expiry month, expiry year, and card suffix will be updated with the latest details.
301306
6. The updated card details will be saved in OCC.
302307

303-
![Network Tokenization](images/network-token.png)
308+
![Network Token](images/network-token.png)
304309

305310
### Capturing funds during authorization (SALE)
306311

0 commit comments

Comments
 (0)