Skip to main content

Implement one-time payment flows on CyberSource 2.0

Zuora

Implement one-time payment flows on CyberSource 2.0

You can configure and integrate a Payment Page 2.0 to support processing one-time payments for Credit Card payment methods on the CyberSource 2.0 gateway integration. You can also take advantage of the flow to create a payment method, process a one-time payment, and store the payment method for processing subsequent recurring payments. You need to pass in additional client parameters in the Z.render function to support the use case of authorization amount processing or invoice processing.

Complete the following tasks to implement a Payment Page 2.0 to support one-time payment flows:

  1. Review prerequisites.
  2. Set up a Payment Page 2.0.
  3. Request a signature for the Payment Page from Zuora.
  4. Set up your client code to integrate the Payment Page to your web page.
  5. Implement the callback response.

If you want to implement payment flows for processing local payments in INR in India, see Implement one-time payment flows for processing payments in India. The implementation is different from what is described in this article. 

Step 1. Review prerequisites

Step 2. Set up a Payment Page 2.0

  1. To understand the implementation procedure of Payment Pages 2.0 in Zuora, review Payment Pages 2.0 implementation overview.
  2. Set up a Payment Page 2.0 by following the instructions in Configure Credit Card Type Payment Pages 2.0. Make sure Enable 3D Secure 2.0 is selected in the Security Information section.
  3. Optionally, preview the Payment Page.
  4. Optionally, translate and localize the Payment Page.
  5. Optionally, update the CSS for the Payment Page.

Step 3. Request a signature for the hosted page from Zuora

Follow the instructions in Request a signature for the Payment Page from Zuora. Because the Client-side HPM Parameter Validation feature is enabled, Zuora will validate the additional fields in the request by comparing them with the values specified in the digital signature.

Here are two request examples for the Generate RSA signature REST API operation.

{
   "uri":"https://sandbox.na.zuora.com/apps/PublicHostedPageLite.do",
   "method":"POST",
   "pageId":"test808145b3bf9d0145b3c6812b0008",
   "paymentGateway":"CyberSourceHPM",
   "authroizationAmount":"100",
   "currency":"USD",
   "accountId":"test808145b3bf9d0145b3c6812b0008"
}
{
   "uri":"https://sandbox.na.zuora.com/apps/PublicHostedPageLite.do",
   "method":"POST",
   "pageId":"test808145b3bf9d0145b3c6812b0008",
   "paymentGateway":"CyberSourceHPM",
   "accountId":"test808145b3bf9d0145b3c6812b0008"
}

Step 4. Set up your client code

Follow the instructions in Integrate Payment Pages 2.0. When rendering the Payment Page form, specify the following additional parameters in the Z.render function to support the use case of authorization amount processing or invoice processing.

Parameter Applicable use case Description

doPayment

Both

Required

Type: boolean

Default: false

true indicates that this is a one-time payment transaction. The Payment Page will create a payment method as well as process the one-time payment transaction.

If it is false or not specified, the Payment Page will only create a payment method.

To implement a one-time payment flow, doPayment must be true

storePaymentMethod

Both

Type: boolean

Default: true

true indicates that the payment method will be stored in Zuora and will be used in subsequent recurring payments.

false indicates that the payment method will not be stored in Zuora. End-customers need to be brought back on-session to authenticate the subsequent payments.

field_accountId

Both

Required

The payment method will be created for the specified account.

For more information about this parameter, see Client parameters for Payment Pages 2.0.

authorizationAmount

Authorization amount processing

Required for authorization amount processing

The amount of the one-time payment that will be sent to the gateway. 

For more information about this parameter, see Client parameters for Payment Pages 2.0.

field_currency

Authorization amount processing

Required for authorization amount processing

The currency of the one-time payment amount.

For more information about this parameter, see Client parameters for Payment Pages 2.0.

documents Invoice processing

Required for invoice processing

An array of invoices to be paid in this transaction, containing the following fields:

  • type - The value must be invoice.
  • ref - The value must be the invoice number, such as INV0000001.

Here is an example for authorization amount processing.

var params = {
    doPayment:"true",
    storePaymentMethod:"false",
    field_accountId:"testc0f87596f2f301759c29443622fa",
    authorizationAmount:"99",
    field_currency:"USD"
};

Here is an example for invoice processing.

var params = {
    doPayment:"true",
    storePaymentMethod:"true",
    field_accountId:"testc0f87596f2f301759c29443622fa",
    documents:"[{\"type\": \"invoice\", \"ref\": \"INV0000001\"}, {\"type\": \"invoice\", \"ref\": \"INV0000002\"}]"
};

Step 5. Implement callback response

See Advanced Integration of Payment Pages 2.0 for more information.