【发布时间】:2015-12-23 09:09:22
【问题描述】:
我正在使用 volley 将 Stripe 支付数据发送到我的服务器。
这是 Stripe 文档中的代码。
final Map<String, String> params = new HashMap<>();
// Code from Stripe.com documentation..
Card card = new Card("4242424242424242", "12", "2014", "123");
Stripe stripe = new Stripe("pk_test_api_key");
stripe.createToken(
card,
new TokenCallback() {
public void onSuccess(Token token) {
// Send token to your server via POST request
params.put("stripeToken", token);
}
public void onError(Exception error) {
// Show localized error message
Toast.makeText(getContext(),
error.getLocalizedString(getContext()),
Toast.LENGTH_LONG
).show();
}
}
但是,当使用 Volley 向我的服务器发送 POST 请求时,我覆盖了 getParams() 方法,但我无法发送令牌,因为地图对象应该是 Map<String, String> 而不是 Map<String, Object>
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
StringRequest request = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
// Success
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
// Error
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
};
queue.add(request);
有没有办法将令牌对象传递给服务器?
【问题讨论】:
-
也许令牌应该在标头中发送?
-
@BNK 标头是什么?
标签: android android-volley stripe-payments