SAIF.Services.WebServices.Epay operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Services.WebServices.Epay. The library exposes two operations, both implemented in the USBank module: generating the encrypted, signed SSO handshake payload sent to US Bank's ePay service, and resolving the distinguished name of the SAIF (non-admin) authentication certificate. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Generate SSO handshake payload | Encrypt session-transfer data and produce a signed, envelope-encrypted SSO payload for US Bank ePay | Caller invokes USBank.GetSSOData(sessionTransferData) |
sessionTransferData (String) |
AdminSingleSignOnData DTO (encrypted data, wrapped key, IV, signature) |
BR-001, BR-002, BR-003 | — | — |
| Resolve SAIF certificate DN | Build the distinguished name string for the SAIF (non-admin) authentication certificate from configuration | Caller invokes USBank.GetSAIFCertDistinguishedName() |
None | DN string (String) | BR-003 | — | — |
This library performs no database access and defines no IBusinessCriteria; there is no database-tables.md or sql/ catalog for this library, hence the — placeholders in the Tables and SQL columns above.
Process flow diagram¶
The following diagram visualizes the primary SSO handshake operational flow, which is the library's main operation. The DN-resolution operation is a smaller, independent utility not depicted here — see its own process flow.
flowchart TD
Start([Start: sessionTransferData]) --> AES[AES-256 encrypt payload]
AES --> LoadUsBankDN[Resolve US Bank cert DN<br>via usBankEPaySSOCertDN config]
LoadUsBankDN --> LoadUsBankCert[Load US Bank cert<br>from LocalMachine Root]
LoadUsBankCert --> CertCheck{US Bank cert<br>found?}
CertCheck -->|No| ErrUSBank([Throw ApplicationException:<br>USBank Cert not found.])
CertCheck -->|Yes| RSAWrap[RSA-wrap AES key with<br>US Bank public key]
RSAWrap --> DiscardKey[Discard raw symmetric key]
DiscardKey --> LoadSaifDN[Resolve SAIF admin cert DN<br>via usBankEPayAuthenticationAdminCertDN config]
LoadSaifDN --> LoadSaifCert[Load SAIF admin cert<br>from LocalMachine My]
LoadSaifCert --> SaifCheck{SAIF admin cert<br>found?}
SaifCheck -->|No| ErrSAIF([Throw ApplicationException:<br>SAIF cert not found.])
SaifCheck -->|Yes| Sign[Sign encrypted data<br>with SAIF private key]
Sign --> Bundle[Bundle into AdminSingleSignOnData]
Bundle --> End([Return AdminSingleSignOnData])
Failure and edge-case behavior¶
- If the US Bank SSO certificate cannot be resolved from
LocalMachine\Root, Generate SSO handshake payload throwsApplicationException("USBank Cert not found.")— the handshake is aborted immediately. See BR-001. - If the SAIF admin authentication certificate cannot be resolved from
LocalMachine\My, Generate SSO handshake payload throwsApplicationException("SAIF cert not found."). See BR-001. - If any cert-DN configuration key is missing or its JSON value is malformed,
JavaScriptSerializer.Deserializethrows duringGetCertificateParameters, and the corresponding certificate-load step never executes, for either operation. wsCreditCardPayment.vb(excluded from the compiled assembly) references an undefinedUSB_EPay.SessionTransfertype and would not build even if re-added to the compile list — it is not an active operation and is not catalogued above.*
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Services\SAIF.Services.WebServices.Epay\WebService\USBank.vbServices\SAIF.Services.WebServices.Epay\WebService\AdminSingleSignOnData.vbServices\SAIF.Services.WebServices.Epay\WebService\wsCreditCardPayment.vb