createPayment method

Future<Payment> createPayment(
  1. Map<String, dynamic> transactions,
  2. String accessToken
)

Implementation

Future<Payment> createPayment(
  Map<String, dynamic> transactions,
  String accessToken,
) async {
  Response response = await dio.post(
    '${_baseUrl()}/v1/payments/payment',
    data: transactions,
    options: Options(headers: {
      "content-type": "application/json",
      'Authorization': 'Bearer ' + accessToken,
    }),
  );
  if (response.statusCode == 201) {
    final data = response.data;
    if (data["links"] != null && data["links"].length > 0) {
      List links = data["links"];

      String executeUrl = "";
      String approvalUrl = "";
      final item = links.firstWhere(
        (o) => o["rel"] == "approval_url",
        orElse: () => null,
      );
      if (item != null) {
        approvalUrl = item["href"];
      }
      final item1 = links.firstWhere(
        (o) => o["rel"] == "execute",
        orElse: () => null,
      );
      if (item1 != null) {
        executeUrl = item1["href"];
      }
      return Payment(
        status: true,
        executeUrl: executeUrl,
        approvalUrl: approvalUrl,
      );
    }
  }
  return Payment(status: false);
}