0

嗨!

我在 Spring Web 流中集成了 Paypal 支付。

该应用程序使用 externalRedirect 将请求转发到 PayPal 网站。(setExpresscheckout) 用户登录到 PayPal 并为该项目付款。用户完成支付后,paypal 会将请求转发回流程。一旦请求从 PayPal 返回,是否有办法在流程中输入特定的视图状态?

我试过这个,但不起作用:

这是 paypalcontroller 的一部分,我在其中将返回 url 设置为 paypal:

private void sessionmanager(RequestContext context) {
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getNativeRequest();
//generate Spring Webflow return URL
String url = request.getRequestURL()+";jsessionid="+ request.getSession().getId() + "?" +
            request.getQueryString();
String paypalCancelUrl   = url + "&_eventId=end-state";
String paypalApprovedUrl = url + "&_eventId=approved";
}

流.xml:

<view-state id="view-state-1" view="sampleflow/view-state-1">
    <transition on="success" to="view-state-2"/>
    <transition on="cancel" to="end-state"/>
    <transition on="approved" to="view-state-2"/>
</view-state>

这是会话管理器代码生成的 url,paypal 重定向到它:

http://localhost:8080/testpaysys/sampleflow;jsessionid=D693C9D4A2681CA6FF18E7C7078EA971?null&_eventId=approved

批准的 eventID 似乎不起作用,我进入流程,但进入了起始状态。(不重定向到状态 2)

我错过了什么?

4

1 回答 1

1

您将需要使用执行密钥。您应该flowExecutionUrl在控制器中构建的返回 url 中使用。
你可以通过context.getFlowExecutionUrl()

于 2012-11-05T13:19:54.383 回答