我目前正在使用Braintree付款。我能够使用我的iOS在仪表板中创建成功的付款问题是我正在尝试返回客户端(iOS)的响应,现在它返回“”,感谢您提前获得帮助。
我目前的php
<?php
require_once("../includes/braintree_init.php");
//$amount = $_POST["amount"];
//$nonce = $_POST["payment_method_nonce"];
$nonce = "fake-valid-nonce";
$amount = "10";
$result = Braintree\Transaction::sale([
'amount' => $amount,
'paymentMethodNonce' => $nonce
]);
我的客户
URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error) -> Void in
// TODO: Handle success or failure
let responseData = String(data: data!, encoding: String.Encoding.utf8)
// Log the response in console
print(responseData);
// Display the result in an alert view
DispatchQueue.main.async(execute: {
let alertResponse = UIAlertController(title: "Result", message: "\(responseData)", preferredStyle: UIAlertControllerStyle.alert)
// add an action to the alert (button)
alertResponse.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
// show the alert
self.present(alertResponse, animated: true, completion: nil)
})
} .resume()
答案 0 :(得分:1)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support。
请记住,在响应中返回任何内容之前,将在您的服务器上评估PHP代码。在这种情况下,Braintree\Transaction::sale
调用会正确评估,结果会保存到$result
变量中。但是,没有其他任何事情发生,您不会向请求者返回任何内容。
要返回响应,您只需将其打印出来即可。请注意,PHP默认使用Content-Type标头设置为&#34; text / html&#34;,因此如果您不想返回网页,您可能希望将其更改为某些内容喜欢&#34; application / json&#34;,或者任何最适合你的。
$result = Braintree\Transaction::sale([
'amount' => $amount,
'paymentMethodNonce' => $nonce
]);
$processed_result = // you could serialize the result here, into JSON, for example
header('Content-Type: application/json');
print $processed_result;