0

現在ブレインツリーペイメントを利用しています。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()
4

1 に答える 1

1

完全な開示: 私はブレインツリーで働いています。ご不明な点がございましたら、サポートまでお気軽にお問い合わせください。

PHP コードは、応答で何かが返される前にサーバー上で評価されることに注意してください。この場合、Braintree\Transaction::sale呼び出しは適切に評価され、結果が変数に保存されます$result。ただし、他には何も起こらず、リクエスタには何も返されません。

応答を返すには、単純に印刷できます。PHP はデフォルトで「text/html」に設定された Content-Type ヘッダーを使用することに注意してください。そのため、Web ページを返したくない場合は、「application/json」などに変更することをお勧めします。があなたに最も適しています。

$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;
于 2016-11-14T20:45:56.420 に答える