我是 Stripe API 的全新新手。我想使用 Spring MVC 将付款网关嵌入我的Java J2EE应用程序中。我正在使用条纹。
到目前为止,我所做的是在结帐页面中包括checkout.js
,并使用卡按钮点击付款。然后,它成功打开了包含必要卡详细信息的弹出窗口。
单击付费按钮时,它应该转到条纹并为我生成一个令牌,然后重定向到成功页面。但是我无法将其固定在后端,并做必要的事情。
您可以在 spring MVC 中提供示例代码>满足我的整个要求吗?
预先感谢。
this is my controller to redirect to the checkout page
@requestmapping(value ="/checkout",method = requestMethod.get) 公共字符串结帐(ModelMap Map,httpservletrequest请求){
//String stripePublicKey = "pk_test_vsp3nRQS4PqW0aqP6PG6cdef";
String stripePublicKey = "pk_test_vsp3nRQS4PqW0aqP6PG6cdef";
/* String token = request.getParameter("stripeToken");
System.out.println("print token @@@@@@@@@@@" + token);
*/
map.addAttribute("amount", 50 * 100); // in cents
map.addAttribute("stripePublicKey", stripePublicKey);
map.addAttribute("currency", ChargeRequest.Currency.EUR);
//map.addAttribute("token", ChargeRequest.Currency.EUR);
return "checkout";
这是我的服务类,以充电卡公共班级lindapiimpl实施stripeapi {
@Override
public Charge charge(ChargeRequest chargeRequest) throws AuthenticationException, InvalidRequestException, APIConnectionException, CardException, APIException {
Map<String, Object> chargeParams = new HashMap<>();
chargeParams.put("amount", chargeRequest.getAmount());
chargeParams.put("currency", chargeRequest.getCurrency());
chargeParams.put("description", chargeRequest.getDescription());
chargeParams.put("source", chargeRequest.getStripeToken());
return Charge.create(chargeParams);
}
实际上我想在通过条纹退房后向信用卡或借记卡充电。
@RequestMapping(value="/charge", method = RequestMethod.POST)
public String charge(ChargeRequest chargeRequest, Model model,HttpServletRequest request)
throws StripeException {
Stripe.apiKey = "sk_test_9kYpQEbABJQDw7PGSQ2Ji0m7";
StripeApi stripeApi = new StripeApiImpl();
chargeRequest.setDescription("Example charge");
chargeRequest.setCurrency(Currency.EUR);
chargeRequest.setAmount(5000);
chargeRequest.setStripeEmail("lipsapatra23@gmail.com");
Charge charge = stripeApi.charge(chargeRequest);
model.addAttribute("id", charge.getId());
model.addAttribute("status", charge.getStatus());
model.addAttribute("chargeId", charge.getId());
model.addAttribute("balance_transaction", charge.getBalanceTransaction());
return "result";
}