createPaymentRequest static method
Future<Map>
createPaymentRequest({
- AriyanpayCredentials? ariyanpayCredentials,
- required CustomerDetails customer,
- required String amount,
- dynamic valueA,
- dynamic valueB,
- dynamic valueC,
- dynamic valueD,
- dynamic valueE,
- dynamic valueF,
- dynamic valueG,
- Map? metadata,
- String? webhookUrl,
- required BuildContext context,
Implementation
static Future<Map<dynamic, dynamic>> createPaymentRequest({
AriyanpayCredentials? ariyanpayCredentials,
required CustomerDetails customer,
required String amount,
dynamic valueA,
dynamic valueB,
dynamic valueC,
dynamic valueD,
dynamic valueE,
dynamic valueF,
dynamic valueG,
Map? metadata,
String? webhookUrl,
required BuildContext context,
}) async {
final Map<dynamic, dynamic> requestData = {
'cus_name': customer.fullName,
'cus_phone': customer.cusPhone,
'invoice_id': 'PAY${DateTime.now().millisecondsSinceEpoch}',
'amount': amount,
'value_a': valueA,
'value_b': valueB,
'value_c': valueC,
'value_d': valueD,
'value_e': valueE,
'value_f': valueF,
'value_g': valueG,
'success_url': AppConfig.redirectURL,
'cancel_url': AppConfig.cancelURL,
'type': 'GET',
};
final controller = Get.put(PaymentController());
if (ariyanpayCredentials == null) {
controller.panelURL.value = AppConfig.sandboxURL;
controller.apiKey.value = AppConfig.sandboxAPIKey;
} else {
controller.panelURL.value = ariyanpayCredentials.panelURL;
controller.apiKey.value = ariyanpayCredentials.apiKey;
}
try {
final http.Response response = await http.post(
Uri.parse(
ariyanpayCredentials == null
? AppConfig.sandboxURL + Endpoints.createPayment
: '${ariyanpayCredentials.panelURL}${Endpoints.createPayment}',
),
headers: <String, String>{
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: jsonEncode(requestData),
);
if (response.statusCode == 200) {
final dynamic responseData = jsonDecode(response.body);
return {
'status': responseData['status'],
'message': responseData['message'],
'payment_url': responseData['payment_url'],
};
} else {
final error = jsonDecode(response.body)['message'];
snackBar(error, context);
debugPrint(error);
throw Exception(error);
}
} catch (error) {
snackBar('Something is wrong', context);
throw Exception('Something is wrong');
}
}