我正在使用排球将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>
而不是{ {1}}
Map<String, Object>
有没有办法将令牌对象传递给服务器?
答案 0 :(得分:1)
您不应在此处发送整个令牌object,而只是发送令牌ID tok_XXX
。
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.getId());
}
public void onError(Exception error) {
// Show localized error message
Toast.makeText(getContext(),
error.getLocalizedString(getContext()),
Toast.LENGTH_LONG
).show();
}
}
然后,您可以使用该令牌服务器端或通过Retrieve Token API检索所有信息。