A Flutter plugin to use the Paytm as a payment gateway for accepting online payments in Flutter app.
Plugin will only work with Production Keys https://dashboard.paytm.com/next/apikeys
iOS Configuration:
In case merchant don’t have callback URL, Add an entry into Info.plist
LSApplicationQueriesSchemes(Array) Item 0 (String)-> paytm
Add a URL Scheme “paytm”+”MID”
void generateTxnToken(int mode) async {
String orderId = DateTime.now().millisecondsSinceEpoch.toString();
String callBackUrl = (testing
? 'https://securegw-stage.paytm.in'
: 'https://securegw.paytm.in') +
'/theia/paytmCallback?ORDER_ID=' +
orderId;
//Host the Server Side Code on your Server and use your URL here. The following URL may or may not work. Because hosted on free server.
//Server Side code url: https://github.com/mrdishant/Paytm-Plugin-Server
var url = 'https://desolate-anchorage-29312.herokuapp.com/generateTxnToken';
var body = json.encode({
"mid": mid,
"key_secret": PAYTM_MERCHANT_KEY,
"website": website,
"orderId": orderId,
"amount": amount.toString(),
"callbackUrl": callBackUrl,
"custId": "122",
"mode": mode.toString(),
"testing": testing ? 0 : 1
});
try {
final response = await http.post(
url,
body: body,
headers: {'Content-type': "application/json"},
);
print("Response is");
print(response.body);
String txnToken = response.body;
setState(() {
payment_response = txnToken;
});
var paytmResponse = Paytm.payWithPaytm(
mid, orderId, txnToken, amount.toString(), callBackUrl, testing);
paytmResponse.then((value) {
print(value);
setState(() {
loading = false;
print("Value is ");
print(value);
if(value['error']){
payment_response = value['errorMessage'];
}else{
if(value['response']!=null){
payment_response = value['response']['STATUS'];
}
}
payment_response += "\n"+value.toString();
});
});
} catch (e) {
print(e);
}
}
For SERVER CODE: Paytm Plugin Server Code
For Cloning the example app code visit: Paytm Plugin
For any query : Mail me at mr.dishantmahajan@gmail.com