esewa_pnp 0.1.0+1 esewa_pnp: ^0.1.0+1 copied to clipboard
esewa_pnp let's you integrate native esewa payment method in your flutter application.
esewa_pnp #
esewa_pnp is a flutter plugin that let's developer to integrate native eSewa payment method into their flutter application with just few lines of code.
How to install #
-
Download eSewaSdk.arr file and save it.
-
Go to this YouTube link and watch full integration walk through video https://youtu.be/95hBW2SDM-Q.
-
Add following attribute inside your AndroidMainfest.xml
<application ... android:theme="@style/Theme.AppCompat.Light.NoActionBar" ...> ... </application>
Usage #
- Create a ESewaConfiguration object. Start with test environment. When application is ready, you can switch it to live (ENVIRONMENT_LIVE)
...
ESewaConfiguration _configuration = ESewaConfiguration(
clientID: "<Client-ID>",
secretKey: "<Secret-Key>",
environment: ESewaConfiguration.ENVIRONMENT_TEST //ENVIRONMENT_LIVE
);
clientID
andsecretKey
values are provided by eSewa to its merchant/client and is unique for each. For development phase, you can use the following credentials:
clientID:
"JB0BBQ4aD0UqIThFJwAKBgAXEUkEGQUBBAwdOgABHD4DChwUAB0R"
secretKey:
"BhwIWQQADhIYSxILExMcAgFXFhcOBwAKBgAXEQ=="
- Create ESewaPnp object and pass configuration.
...
ESewaPnp _eSewaPnp = ESewaPnp(configuration: _configuration);
- Finally create the payment object
...
ESewaPayment _payment = ESewaPayment(
amount: <ANY_INTEGER_VALUE>,
productName: "<Product-Name>",
productID: "<Unique-Product-ID>",
callBackURL: "<Call-Back-URL>"
);
- Now call
initPayment
method.
...
final _res = await _eSewaPnp.initPayment(payment: _payment);
initPayment
will return an Either
type (ref. dart functional programming with dartz) . Response can be either Failure
type or Result
type.
Failure
type indicates the payment process fail.
Result
type indicates the successful payment.
- Determine application behavior according to the response
...
_res.fold(
(l) {
// TODO:: Stuffs after failure.
},
(r) {
// TODO:: Stuffs after successful payment.
}
);
❌ Failure #
Failure class is returned when payment process fails.
.message
[String] : returns the error message
✅ Result #
Result class is returned when payment process successful.
.message
[String] : returns readable success message.productId
[String] : returns product id of the product customer paid for.productName
[String] : returns product name of the product customer paid for.totalAmount
[String] : returns total amount customer paid.date
[String] : returns the date of transaction.status
[String] : returns the transaction status.referenceId
[String] : returns the transaction reference id
👨🦱 Author #
Checkout example implementation : EsewaPnp Example
This plugin can only be used on android platform because I don't have mac.