credo_gateway 0.0.2 copy "credo_gateway: ^0.0.2" to clipboard
credo_gateway: ^0.0.2 copied to clipboard

Official plugin for Credo Payment gateway https://credocentral.com/

flutter-credo-sdk #

Credo SDK Flutter #

This library allows for the easy integration of [Credo] into your Flutter application. It shoulders the burden of PCI compliance by sending credit card details directly to Credo's servers rather than to your server.

Flow Summary #

  1. Collect user's card details, email and phone number.

  2. Initialize the CredoPlugin by creating an object of the CredoPlugin class with two named parameters passed to the constructor.

    • The first argument is the public key of the merchant
    • The second argument is the secret key of the merchant.
    • Both public and secret keys are provided by Credo to the merchants.
    • Prompts backend to initialize transactions by calling the initialPayment method.
    • Credo's backend returns a payment slug which is returned when Initiate Payment endpoint is called
    • App provides the payment slug and card details to our SDK's using the pay and verifyCardNumber methods
  3. Once request is successful, ThirdPartyPaymentResponse is return.

Installation #

  • To start using this package, simply add the following to project pubspec.yaml
  flutter_credo: <lastes-version>

Usage #

1. Permissions #

To use this package, your android app must declare internet permission. Add the following code to the application level of your AndroidManifest.xml.

	<uses-permission android:name="android.permission.INTERNET" />

2. Initializing SDK #

To use [Credo] SDK, you need to first initialize it by using the `CredoPlugin` class.

CredoPlugin credoPlugin =  CredoPlugin(
    publicKey:  'public_key',
);

Ensure to perform this instantiation in the initState method of your Widget.

CredoPlugin credoPlugin;

@override
void  initState() {
credoPlugin =  CredoPlugin(
publicKey:  'pk_demo-cKwtbsYaPNjgZZIFfznnZJGP49plbw.ujlZ0XcwAD-d',
);

initPayment();
super.initState();
}

3. Initiate Payment #

Payment transaction can be initiated with the initialPayment method:

Parameters #

  • amount The amount to be transacted.
  • currency The currency to be transacted in.
  • redirectUrl The url to redirect to after transaction.
  • transRef [optional] The transaction reference for the payment
  • paymentOptions option can be "CARD" or "USSD" or "BANK"
  • customerName Name of the customer
  • customerEmail Email address of the customer
  • customerPhone Phone number of the customer If the method call is success a InitPaymentResponse is returned from the Future else it throws a CredoException with an error message.
	.
	.
	.
	try{
		InitPaymentResponse initPaymentRes =  await credoPlugin.initialPayment(
		amount:  100.0,
		currency:  'NGN',
		customerEmail:  'info@charlesarchibong.com',
		customerName:  'Charles Archibong',
		customerPhoneNo:  '000000000000',
		);
	}catch(e){
		if(e is CredoException){
			print(e.message);
		}
	}

4. Make payment with Credo Web UI #

Payment transaction can be made with the payWithWebUI method:

Parameters #

  • amount The amount to be transacted.
  • currency The currency to be transacted in.
  • redirectUrl The url to redirect to after transaction.
  • transRef [optional] The transaction reference for the payment
  • paymentOptions option can be "CARD" or "USSD" or "BANK"
  • customerName Name of the customer
  • customerEmail Email address of the customer
  • customerPhone Phone number of the customer If the method call is successful, a Webview to complete the payment is returned from the Future else it throws a CredoException with an error message.
	.
	.
	.
	try{
		 await credoPlugin.payWithWebUI(
		amount:  100.0,
		currency:  'NGN',
		customerEmail:  'info@charlesarchibong.com',
		customerName:  'Charles Archibong',
		customerPhoneNo:  '000000000000',
		);
	}catch(e){
		if(e is CredoException){
			print(e.message);
		}
	}

After payment, you can call the verifyTransaction which returns VerifyTransactionResponse to verify the payment and confirm all is good.

you can check out the example app for more information.

1
likes
120
points
48
downloads

Publisher

verified publishercredocentral.com

Weekly Downloads

Official plugin for Credo Payment gateway https://credocentral.com/

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

dartz, dio, equatable, flutter, webview_flutter

More

Packages that depend on credo_gateway