Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Paypal Braintree沙盒帐户不显示事务_Paypal_Sandbox_Braintree - Fatal编程技术网

Paypal Braintree沙盒帐户不显示事务

Paypal Braintree沙盒帐户不显示事务,paypal,sandbox,braintree,Paypal,Sandbox,Braintree,我是android端客户端令牌生成并获取nonce对象,以便立即传递我的服务器php端checkout文件 <?php require_once(__DIR__ . DIRECTORY_SEPARATOR . 'config.php'); $nonceFromTheClient = $_POST['payment_method_nonce'] $amount = $_POST['amount'] $merchantAccountId = someFunctionToLookupCo

我是android端客户端令牌生成并获取nonce对象,以便立即传递我的服务器php端checkout文件

  <?php

require_once(__DIR__ . DIRECTORY_SEPARATOR . 'config.php');

$nonceFromTheClient = $_POST['payment_method_nonce']
$amount = $_POST['amount']
$merchantAccountId = someFunctionToLookupCorrectMerchantIdBasedOnCurrency();

 $result = Braintree_Transaction::sale([
'amount' => "10.00",
'paymentMethodNonce' => $nonceFromTheClient,
'merchantAccountId' => $merchantAccountId,
'options' => [
    'submitForSettlement' => True
   ]
]);
 $transaction = $result->transaction;
 $transaction->paymentInstrumentType ==    
Braintree_PaymentInstrumentType::PAYPAL_ACCOUNT;
# false
  $transaction->paymentInstrumentType ==    
 Braintree_PaymentInstrumentType::CREDIT_CARD;
充分披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系

您的事务未在网关中注册可能有多种原因。你应该确保

  • 您的所有配置都已设置并可用于服务器端集成
  • 您在服务器中并将其发送到客户端

  • 您在客户端中,并将其发送回服务器

  • 使用nonce创建新事务
  • 检查从
    Braintree\u Transaction::Sale返回的数据以检查错误
    根据您发布的具体实现,我建议您仔细检查
    SomeFunctionToLookupCorrectMerchantId BasedOnCurrency()
    是否返回有效的merchantID,
    $nonefromClient
    是否定义且唯一,以及您的客户端是否接收到客户端令牌


    有关您的集成的更多帮助,请联系。

    我的代码是完美的php服务器端静态金额传递使用“假有效nonce”,客户端金额传递使用“paymentMethodNonce”=>非有效客户端,代码完美运行

    未显示沙盒帐户交易摘要通过服务器付款未显示在交易中我已手动交易付款成功显示交易有什么问题此代码我需要沙盒crediantia;事务不显示“paymentMethodNonce”=>“fake valid nonce”我已更改这些代码正在工作,但非对象传递不工作为什么???
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("http://192.168.0.102:8080/btsample/client_token.php", new TextHttpResponseHandler() {
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
    
            }
            @Override
            public void onSuccess(int statusCode, Header[] headers, String clientToken) {
                Toast.makeText(MainActivity.this, clientToken.toString(), Toast.LENGTH_SHORT).show();
                Log.d("clientToken",clientToken.toString());
              //  onBraintreeSubmit("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI4ZjJhOTVlN2E0NjE2NzRjYzE3MmIxN2I4MmYxOGZiNjhhODkzOWVmZmViNTkxNTExM2EzMjlkMjY4MWIwYjE1fGNyZWF0ZWRfYXQ9MjAxNi0wOC0yMlQwNTozNzo0OC45MjU5NDk2OTArMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vY2xpZW50LWFuYWx5dGljcy5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tLzM0OHBrOWNnZjNiZ3l3MmIifSwidGhyZWVEU2VjdXJlRW5hYmxlZCI6dHJ1ZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiQWNtZSBXaWRnZXRzLCBMdGQuIChTYW5kYm94KSIsImNsaWVudElkIjpudWxsLCJwcml2YWN5VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3BwIiwidXNlckFncmVlbWVudFVybCI6Imh0dHA6Ly9leGFtcGxlLmNvbS90b3MiLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjp0cnVlLCJlbnZpcm9ubWVudCI6Im9mZmxpbmUiLCJ1bnZldHRlZE1lcmNoYW50IjpmYWxzZSwiYnJhaW50cmVlQ2xpZW50SWQiOiJtYXN0ZXJjbGllbnQzIiwiYmlsbGluZ0FncmVlbWVudHNFbmFibGVkIjp0cnVlLCJtZXJjaGFudEFjY291bnRJZCI6ImFjbWV3aWRnZXRzbHRkc2FuZGJveCIsImN1cnJlbmN5SXNvQ29kZSI6IlVTRCJ9LCJjb2luYmFzZUVuYWJsZWQiOmZhbHNlLCJtZXJjaGFudElkIjoiMzQ4cGs5Y2dmM2JneXcyYiIsInZlbm1vIjoib2ZmIn0=");
               onBraintreeSubmit(clientToken.toString());
               // onBraintreeSubmit("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI3OGFkNDRjMzNjNmMzOGU0NDUxMjNjYzY4ZTE4ZGE2NTJkMmUxY2JmODMzZWZhOTFkMTIwOGE3OWEzNjRhZTllfGNyZWF0ZWRfYXQ9MjAxNi0wOC0yM1QwOToxNzozMy4xNzIxMTcwMzIrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vY2xpZW50LWFuYWx5dGljcy5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tLzM0OHBrOWNnZjNiZ3l3MmIifSwidGhyZWVEU2VjdXJlRW5hYmxlZCI6dHJ1ZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiQWNtZSBXaWRnZXRzLCBMdGQuIChTYW5kYm94KSIsImNsaWVudElkIjpudWxsLCJwcml2YWN5VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3BwIiwidXNlckFncmVlbWVudFVybCI6Imh0dHA6Ly9leGFtcGxlLmNvbS90b3MiLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjp0cnVlLCJlbnZpcm9ubWVudCI6Im9mZmxpbmUiLCJ1bnZldHRlZE1lcmNoYW50IjpmYWxzZSwiYnJhaW50cmVlQ2xpZW50SWQiOiJtYXN0ZXJjbGllbnQzIiwiYmlsbGluZ0FncmVlbWVudHNFbmFibGVkIjp0cnVlLCJtZXJjaGFudEFjY291bnRJZCI6ImFjbWV3aWRnZXRzbHRkc2FuZGJveCIsImN1cnJlbmN5SXNvQ29kZSI6IlVTRCJ9LCJjb2luYmFzZUVuYWJsZWQiOmZhbHNlLCJtZXJjaGFudElkIjoiMzQ4cGs5Y2dmM2JneXcyYiIsInZlbm1vIjoib2ZmIn0=");
            }
        });
    }
    
    public void onBraintreeSubmit(String Token) {
    
        PaymentRequest paymentRequest = new PaymentRequest().clientToken(Token);
        startActivityForResult(paymentRequest.getIntent(this), REQUEST_CODE);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE) {
            if (resultCode == Activity.RESULT_OK) {
                PaymentMethodNonce paymentMethodNonce = data.getParcelableExtra(
                        BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE
                );
                String nonce = paymentMethodNonce.getNonce();
                Log.d("nonce",nonce);
                postNonceToServer(nonce);
            }
        }
    }
    
        void postNonceToServer(String nonce) {
        AsyncHttpClient client = new AsyncHttpClient();
        RequestParams params = new RequestParams();
        params.put("payment_method_nonce", nonce);
        params.put("amount", 20);
        client.post("http://192.168.0.102:8080/btsample/checkout.php", params, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                Log.d("responsebody",responseBody.toString());
                Toast.makeText(MainActivity.this, responseBody.toString(), Toast.LENGTH_SHORT).show();
                startActivity(new Intent(getApplicationContext(),Main2Activity.class));
            }
    
            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
            }
         }
      );