0

やあ!

ペイパルの支払いをSpringWebフローに統合しています。

アプリは、externalRedirectを使用してリクエストをPayPal Webサイトに転送します。(setExpresscheckout)ユーザーは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";
}

flow.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であり、ペイパルはそれにリダイレクトします。

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 に答える