我从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错误。
在解决此问题时我需要帮助。