createPaypalPayment method

Future<Map<String, String>?> createPaypalPayment(
  1. dynamic transactions,
  2. dynamic accessToken
)

Implementation

Future<Map<String, String>?> createPaypalPayment(
    transactions, accessToken) async {
  try {
    // var response = await client.post((Uri.parse("$domain/v1/payments/payment")));
    var response = await http.post((Uri.parse("$domain/v1/payments/payment")),
        body: convert.jsonEncode(transactions),
        headers: {
          "content-type": "application/json",
          'Authorization': 'Bearer ' + accessToken
        });

    final body = convert.jsonDecode(response.body);
    if (response.statusCode == 201) {
      if (body["links"] != null && body["links"].length > 0) {
        List links = body["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 {"executeUrl": executeUrl, "approvalUrl": approvalUrl};
      }
      return null;
    } else {
      throw Exception(body["message"]);
    }
  } catch (e) {
    rethrow;
  }
}