编程Square付款以及在Flutter App中使用后端

时间:2019-08-31 11:42:25

标签: flutter dart payment-gateway square-connect square

我从Square获得了以下代码,解释了代码的飞镖/颤振面:

import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:square_in_app_payments/models.dart';
import 'package:http/http.dart' as http;

// Replace this with the server host you create, if you have your own server running
// e.g. https://server-host.com
String chargeServerHost = "https://myappexample.herokuapp.com";
String chargeUrl = "$chargeServerHost/chargeForCookie";

class ChargeException implements Exception {
  String errorMessage;
  ChargeException(this.errorMessage);
}

Future<void> chargeCard(CardDetails result) async {
  var body = jsonEncode({"nonce": result.nonce}); // ({"nonce": result.nonce,"amount":1, "currency":"GBP"})
  http.Response response;
  try {
    response = await http.post(chargeUrl, body: body, headers: {
      "Accept": "application/json",
      "content-type": "application/json"
    });
  } on SocketException catch (ex) {
    print(ex.message);
    throw ChargeException(ex.message);
  }

  var responseBody = json.decode(response.body);
  if (response.statusCode == 200) {
    return;
  } else {
    print(response.statusCode.toString());
    throw ChargeException(responseBody["errorMessage"]);
  }
}

对于后端,我在这里按照以下步骤操作:https://github.com/square/in-app-payments-server-quickstart

我没有服务器端编程的任何经验,所以只能按照我对步骤的理解进行操作。通过这种设置,我可以将现时数发送到计费卡方法,然后得到错误的请求400错误。

在解决此问题时我需要帮助。

0 个答案:

没有答案