Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
borderColor#eeeeee
bgColorwhite
titleColorwhite
borderWidth1
titleBGColor#232323
borderStylesolid
titleIn this page

Table of Contents
depth2

Use the IVR Secure Payments solution to enable callers to pay for goods and services over the phone (self service) or using a payment link (digital) without interacting with an agent. For an overview of the payment facility, see IVR Secure Payments solution.

...

The following visualization shows the key stages of an example call plan for the IVR payment solution for both self service over the phone (A) and digital payments (B).

A more detailed description of an example IVR-based call plan is as follows:

1. VCC IVR collects non-PCI payment data

Before Vonage Contact Center (VCC) starts the payment process in the platform's automated payment system, VCC must retrieve some data about the caller. Such data might include the balance of the payment to be taken and basic caller details such as name and address. The data required to start a payment session depends on the payment provider. Use one or more of the following applets to retrieve the required data:

...

  1. Authorize—to authorize the user to start the session. In the below example, a call is made to the VCC Authentication API. For more information on the Authentication API, see Authentication API.

    Code Block
    languagexml
    titleExample Interaction Definition
    <ApiInteraction>
      <Request>
        <Url>~~~REPLACE~~~/auth/connect/token</Url>
        <Method>POST</Method>
        <Headers>
        </Headers>
        <Body><![CDATA[grant_type=client_credentials&scope=globalpci&client_id=~~~REPLACE~~~&client_secret=~~~REPLACE~~~]]></Body>
      </Request>
      <Response>
        <Type>JSON</Type>
        <ResponseCodeDestination>AuthorizeResponseCode</ResponseCodeDestination>
        <Fields>
          <Field>
            <Locator>access_token</Locator>
            <Destination>AccessToken</Destination>
            <DataType>String</DataType>
          </Field>
          <Field>
            <Locator>token_type</Locator>
            <Destination>TokenType</Destination>
            <DataType>String</DataType>
          </Field>
        </Fields>
      </Response>
    </ApiInteraction>


  2. Start Session—to start the payment session. The fields that this Data Connector uses in the Payment Data section—for example first name, surname, city, amount, currency and so on—vary depending on the payment provider. The account configuration ID is supplied by Vonage.

    For the request to be processed successfully, you must include all fields mandatory to the payment provider in the Data Connector body. In the case of a digital session, the customer’s phone number is a mandatory field in the Payment Data section.

    Code Block
    languagexml
    titleExample Interaction Definition for self service over the phone payments
    <ApiInteraction>
      <Request>
        <Url>~~~REPLACE~~~/globalpci/v1/selfservicesession/</Url>
        <Method>POST</Method>
        <Headers>
          <Header>
            <Key>Authorization</Key>
            <Value>Bearer $(AccessToken)</Value>
          </Header>
          <Header>
            <Key>Content-Type</Key>
            <Value>application/json</Value>
          </Header>
        </Headers>
        <Body>{"AccountConfigurationId":"~~~REPLACE~~~", "CallGuid": "$(CallGuid)", "PaymentData": { "cardholderName":"$(~~~REPLACE~~~)","cardholderPostCode":"$(~~~REPLACE~~~)", "cardholder Address": "$(~~~REPLACE~~~)","merchantTxnRef":"$(~~~REPLACE~~~)", "amount":"$(~~~REPLACE~~~)" } }</Body>
      </Request>
      <Response>
        <Type>JSON</Type>
        <ResponseCodeDestination>GlobalPCIResponseCode</ResponseCodeDestination>
        <Fields>
          <Field>
            <Locator>dtmfFallbackNumber</Locator>
            <Destination>PCIPal|DtmfFallbackNumber</Destination>
            <DataType>String</DataType>
          </Field>
          <Field>
            <Locator>dtmfLinkId</Locator>
            <Destination>PCIPal|DtmfLinkId</Destination>
            <DataType>String</DataType>
          </Field>
          <Field>
            <Locator>sessionId</Locator>
            <Destination>GlobalPCI|SessionId</Destination>
            <DataType>String</DataType>
          </Field>
          <Field>
            <Locator>Message</Locator>
            <Destination>GlobalPCI|Message</Destination>
            <DataType>String</DataType>
          </Field>      
        </Fields>
      </Response>
    </ApiInteraction>


    Code Block
    languagexml
    titleExample Interaction Definition for digital payments
    <ApiInteraction>
      <Request>
        <Url>~~~REPLACE~~~/globalpci/v1/digitalselfservicesession/</Url>
        <Method>POST</Method>
        <Headers>
          <Header>
            <Key>Authorization</Key>
            <Value>Bearer $(AccessToken)</Value>
          </Header>
          <Header>
            <Key>Content-Type</Key>
            <Value>application/json</Value>
          </Header>
        </Headers>
        <Body>{"AccountConfigurationId":"~~~REPLACE~~~", "PaymentData": { "CustomerPhoneNumber":"$(~~~REPLACE~~~)","cardholderName":"$(~~~REPLACE~~~)","cardholderPostCode":"$(~~~REPLACE~~~)", "cardholder Address": "$(~~~REPLACE~~~)","merchantTxnRef":"$(~~~REPLACE~~~)", "amount":"$(~~~REPLACE~~~)" } }</Body>
      </Request>
      <Response>
        <Type>JSON</Type>
        <ResponseCodeDestination>GlobalPCIResponseCode</ResponseCodeDestination>
        <Fields>
          <Field>
            <Locator>sessionId</Locator>
            <Destination>GlobalPCI|SessionId</Destination>
            <DataType>String</DataType>
          </Field>
          <Field>
            <Locator>Message</Locator>
            <Destination>GlobalPCI|Message</Destination>
            <DataType>String</DataType>
          </Field>   
        </Fields>
      </Response>
    </ApiInteraction>


...

In the example below, a call is made to the VCC Payment API to query the session status. For more information on the Payment API, see Payment API.

Code Block
languagexml
titleExample Interaction Definition
<ApiInteraction>
  <Request>
    <Url>~~~REPLACE~~~/globalpci/v1/session/$(GlobalPCI|SessionId)</Url>
    <Method>GET</Method>
    <Headers>
      <Header>
        <Key>Authorization</Key>
        <Value>Bearer $(AccessToken)</Value>
      </Header>
    </Headers>
    <Body></Body>
  </Request>
  <Response>
    <Type>JSON</Type>
    <ResponseCodeDestination>GlobalPCI|ResponseCode</ResponseCodeDestination>
    <Fields>
      <Field>
        <Locator>sessionState</Locator>
        <Destination>GlobalPCI|SessionState</Destination>
        <DataType>String</DataType>
      </Field>
    </Fields>
  </Response>
</ApiInteraction>

...