Payhere plugin for flutter

A Flutter plugin for making payments via Payhere Payment Gateway

πŸ’»Installation

Add this dependencies in your app's pubspec.yaml

payhere_flutter: ^0.0.8

πŸ’° Making Payments

This plugin mimics the original payhere android sdk hence making a payment is identical to original sdk

Import package

import 'package:payhere_flutter/payhere_flutter.dart';

One-time Payment Request

InitRequest req = new InitRequest();
//Required Params
req.setMerchantId("1210XXX");       // Your Merchant PayHere ID
req.setMerchantSecret("ugknesnvn"); // Your Merchant secret (Add your app at Settings > Domains & Credentials, to get this))
req.setCurrency("LKR");             // Currency code LKR/USD/GBP/EUR/AUD
req.setAmount(1000.00);             // Final Amount to be charged
req.setOrderId("230000123");        // Unique Reference ID
req.setItemsDescription("Door bell wireless");  // Item description title 
req.setCustom1("This is the custom message 1");
req.setCustom2("This is the custom message 2");
req.getCustomer().setFirstName("Saman");
req.getCustomer().setLastName("Perera");
req.getCustomer().setEmail("samanp@gmail.com");
req.getCustomer().setPhone("+94771234567");
req.getCustomer().getAddress().setAddress("No.1, Galle Road");
req.getCustomer().getAddress().setCity("Colombo");
req.getCustomer().getAddress().setCountry("Sri Lanka");

//Optional Params
req.getCustomer().getDeliveryAddress().setAddress("No.2, Kandy Road");
req.getCustomer().getDeliveryAddress().setCity("Kadawatha");
req.getCustomer().getDeliveryAddress().setCountry("Sri Lanka");
req.getItems().add(new Item(null, "Door bell wireless", 1, 1000.0));

call SANDBOX or LIVE end points with InitRequest

RaisedButton(  
  onPressed: () async {  
  // SANDBOX 
    PhResponse response =  
        await PayhereFlutter.oneTimePaymentSandbox(request: req);  
  child: Text("One Time Payment SANDBOX"),  
),

PhResponse is identical to PHResponse in Android SDK

PhResponse | type |name |description | |--|--|--| |Data| data |includes information about transaction |String|message | brief about transaction |int | status | Transaction status

Status

statuscode
STATUS_SUCCESS1
ERROR_UNKNOWN-1
ERROR_DATA-2
ERROR_VALIDATION-3
ERROR_NETWORK-4
ERROR_PAYMENT-5

Data

typenamedescription
intstatuspayment status
doublepaymentNounique payment identifier
StringcurrencyThe unit of currency in which the transaction was made
pricepriceAmount of transaction.
Stringsigntransaction sign key
Stringmessagedescription about transaction

Status

statuscode
INIT0
PAYMENT1
SUCCESS2
FAILED-2

you can find example code in here

πŸ“„ Implementation

APIAndroidiOS
One-time Paymentβœ”οΈβŒ
Recurring Payment❌❌
Pre-approval❌❌

✏️ Contributing, 😞 Issues and πŸ› Bug Reports

The project is open to public contribution. Please feel very free to contribute. Experienced an issue or want to report a bug? Please, report it here. Remember to be as descriptive as possible.

🚨 Issues /Bugs

  • 0.0.3 Android Manifest merger failed error add Page maker rule for AndroidManifest.xml
     <application
     android:name="io.flutter.app.FlutterApplication"  
     android:label="appname"  
     android:icon="@mipmap/ic_launcher"  
     tools:replace="android:label"> // add this
    

πŸ˜‡ Is this useful?

please don't forget to give a little start ⭐ from here and give a πŸ‘ for this.

Libraries

payhere_flutter