android - 在 Android 的 fragment 中集成 Braintree Dropin 时出错

标签 android braintree venmo

我需要 fragment 内 Android 集成方面的帮助,当代码在 Activity 中实现时它工作正常,但在我的案例中,我需要在 fragment 中实现它。

我正在尝试从 Fragment 调用 dropin ui,但无法这样做。

我遵循的步骤:- 1) 我使用 get_braintree_token(rootview.getContext()) 获取了 braintree token 。

2) 获得 token 后,我将其传递给 onBraintreeSubmit(braintreeToken ,viewb) 3) 当它到达 onBraintreeSubmit 函数中的 startActivityForResult() 时,BrainTree UI 没有膨胀。它直接移动到 onActivityResult(),结果代码为 1 和一些随机请求代码。 我在下面写了我的函数。

public View onCreateView(LayoutInflater inflater, ViewGroup   container,Bundle savedInstanceState) {

rootview = inflater.inflate(R.layout.fragment_map, container, false);
get_braintree_token(rootview.getContext());
return rootview;
  }
public void get_braintree_token(final Context viewb)
{

StringRequest stringRequest = new StringRequest(Request.Method.GET, "My    server URL",    new Response.Listener<String>() {
                    @Override
                    public void onResponse(String     response) {

                    braintreeToken = response.toString();
                    Log.e("Braintreetoken","token is:"+braintreeToken);

                    onBraintreeSubmit(braintreeToken, viewb);

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            braintreeToken = null;
        }
    });
// Add the request to the RequestQueue.
    requestQueue.add(stringRequest);

}


public void onBraintreeSubmit(String token, Context c) {
    Log.e("tokenreceived",token);
    DropInRequest dropInRequest = new  DropInRequest();

    dropInRequest.clientToken(token);
    Intent drop = dropInRequest.getIntent(c);
    startActivityForResult(drop, BRAINTREE_REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == BRAINTREE_REQUEST_CODE) {
        if (resultCode == 1) {
            DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
            // use the result to update your UI and send the payment method nonce to your server
        } else if (resultCode == Activity.RESULT_CANCELED) {
            // the user canceled
        } else {
            // handle errors here, an exception may be available in
            Exception error = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
        }
    }
} 

最佳答案

传递 token 值,这里传递了一个 Json 响应,这是创建问题,因此从响应中提取 token 并将其传递给 braintree 方法,而不是传递 json 响应。

关于android - 在 Android 的 fragment 中集成 Braintree Dropin 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532506/

相关文章:

php - Braintree 沙盒测试(假随机数)

json - Venmo API - 不同的支付 ID

ios - 带有 Objective-C 函数的 Swift block 语法 [Venmo-iOS-SDK]

node.js - 如何使用node.js读取分块流

android - 我可以将 android studio 项目导入到 eclipse 中吗?

android - 在谷歌地图中搜索地点并返回经度和纬度

android - 确保在 android listview 上可见?

braintree - 定期付款 - 无卡试用

paypal - 实现点对点支付

java - 从非 Gmail 帐户以编程方式发送电子邮件时出错