Braintree交易状态android,如何检查是否被拒绝?

时间:2015-06-26 05:44:25

标签: android http response payment-gateway braintree

我试图找出如何使用Braintree支付网关在我的Android应用中检查交易状态。

我已阅读他们的文件,如果没有足够的资金,有2001年的拒绝代码。但这仅指服务器端,我已将其实现为:

...
$nonce = $_POST["payment_method_nonce"];
$amount = $_POST["amount"];

$result = Braintree_Transaction::sale(array(
  'amount' => $amount,
  'paymentMethodNonce' => $nonce
));


if ($result->success) {
    echo("Success! Transaction ID: " . $result->transaction->id);
} else if ($result->transaction->status) {
    echo("Error: " . $result->message);
    echo("<br/>");
    echo("Code: " . $result->transaction->processorResponseCode);
} 

...

但是当我检查支付现时,没有办法得到回复,我已经通过阅读标题尝试了,但是我没有得到任何回应:

android实现:

void postNonceToServer(String nonce) {

        //set a boolean to veryfy transaction status, then send files in onResume (error if trying in onActivityResult)
        transactionDone = true;

        AsyncHttpClient client = new AsyncHttpClient();
        RequestParams params = new RequestParams();
        params.put("payment_method_nonce", nonce);
        params.put("amount", total);
        client.post("http://edmondvarga.com/laborator/brt_server/payment-methods.php", params,
                new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int i, Header[] headers, byte[] bytes) {

                        HashMap<String, String> result = new HashMap<String, String>(headers.length);
                        for (Header header : headers) {
                            result.put(header.getName(), header.getValue());
                            Log.i("header", "name/value: " + header.getName() + " " + header.getValue() + " or " + header.getName().toString() + " " + header.getValue().toString());
                        }


                    }

                    @Override
                    public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                        Log.i("Nonce", "sending nonce failed!");
                    }

                }
        );
    }

那么在我为客户提供服务之前,我怎么能验证交易的状态呢?

2 个答案:

答案 0 :(得分:1)

我是Braintree的开发人员。通常,nonce不包含处理器验证信息,因为在您尝试使用nonce(使用服务器端调用)创建事务之前,这些验证不会运行。

如果您正在使用我们的插入式集成,您可以选择在创建enabling verifications in the control panel的随机数之前运行这些验证。在这种情况下,只有在验证通过时才会成功创建现时。

答案 1 :(得分:0)

从客户端处理事务时,

PaymentMetodNonce是一个随机整数。您需要Braintree令牌才能进行交易。您需要创建customer_id。使用customer_id和paymentmethodnonce,您可以生成braintree token。点击此链接:   Correct way to link PayPal Accounts to vault with Braintree DropUI