やあ!
ペイパルの支払いを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にリダイレクトされません)
私は何が欠けていますか?