Cards via iPay88 leverages a third-party SDK that is currently only available for payments made in Malaysia with Malaysian Ringgit.

Before you begin

This guide assumes that you know how to:

Accept payments with Card via iPay88

Prepare the API

Card via iPay88 requires the following data to process a payment successfully. Pass the following data in the client session, or in the payment request (for manual payment creation).

Parameter NameRequiredDescription
3-letter currency code in ISO 4217 format, e.g. USD for US dollars
  1. order
Details of the line items of the order
  1. order
  2. lineItems

Description of the line item

  1. order

Must by MY

  1. customer

First name of the customer

  1. customer

Last name of the customer

  1. customer

Customer email address

Prepare the SDK for payments

Pre-requisites

iPay88 requires the installation of a separate library via Cocoapods.

Add the line below in your Podfile

12345678
target 'App' do  //...    pod 'PrimerSDK'  // Add the line below to enable iPay88  pod 'PrimerIPay88MYSDK'
end
jsx
copy

If you face the error with id missing-sdk and description Missing SDK PrimerIPay88MYSDK add the following post-install script in your podfile:

12345678910111213141516171819202122
target 'App' do      # ...
    post_install do |installer|    fix_linking(installer)  endend

def fix_linking(installer)    installer.generated_projects.each do |project|    project.targets.each do |target|      if target.name == "PrimerSDK"        target.build_configurations.each do |config|          config.build_settings['OTHER_LDFLAGS'] = '$(inherited) -framework "PrimerIPay88MYSDK"'        end      end    end  endend
jsx
copy

Handle payment method

Cards via iPay88 requires a Native UI Manager in order to be presented to the user:

12345
// 👇 Create the payment method managerlet nativeUIPaymentMethodManager = try PrimerHeadlessUniversalCheckout.NativeUIManager(paymentMethodType: "IPAY88_CARD") // 👇 Show the payment methodtry nativeUIPaymentMethodManager.showPaymentMethod(intent: .checkout)
swift
copy

Limitations

  • Due to a limitation from iPay88, the library cannot be installed with Swift Package Manager

Vaulting

Cards via iPay88 can only be vaulted after a successful payment.

Make sure to set paymentMethod.vaultOnSuccess to true in the client session. This ensures that the card is added to Primer's centralized vault after a payment is successfully authorized.

In order to vault Card via iPay88 accounts, pass the following data in the Client Session:

Parameter NameRequiredDescription
A unique identifier for your customer

Prepare the SDK for vaulting

Follow the instructions written above to install the iPay88 SDK and present Cards via iPay88 to the user.

If vaultOnSuccess is properly set to true in the client session, the card will automatically be vaulted against the customer id.

Go live

You don’t need to do anything particular to go live — just make sure to use production credentials.