手順は次のとおりです:
- PayPal で決済を作成する
- PayPal の Web サイトでユーザーを認証する
- 決済を実行する
まず、PayPal で決済を作成します。
CreatePayment SDT を使用して決済のオプションを設定します: 金額、戻される URL (成功と失敗) などを設定します。
CreatePaymentAPI プロシージャーを使用して、事前に入力した SDT を使用して API 呼び出しを作成し、PayPal で決済を作成します。成功した場合、決済に関する情報が戻されます (CreatePaymentResponse SDT にロードして処理する必要があります)。
リダイレクトリンクを取得し、決済を行うユーザーをリダイレクトする必要があります。決済を行うユーザーは、PayPal の Web サイトで PayPal アカウントを使用して自身を認証し、決済内容を確認します。
&transaction.amount.currency = "USD"
&transaction.amount.total = "150"
&CreatePayment.intent = "sale"
&CreatePayment.payer.payment_method = "Paypal"
&CreatePayment.redirect_urls.cancel_url = "http://apps5.genexus.com/Idb8236469be2101e927a28340ad5eaaad/executeagreement.aspx"
&CreatePayment.redirect_urls.return_url= "http://apps5.genexus.com/Idb8236469be2101e927a28340ad5eaaad/executepayment.aspx"
&CreatePayment.note_to_payer = "NOTE"
&CreatePayment.transactions.Add(&transaction)
CreatePaymentAPI(&CreatePayment.ToJson(),&APIResponse,&ErrorCode)
if &ErrorCode = 0
&CreatePaymentResponse.FromJson(&APIResponse)
for &i = 1 to &CreatePaymentResponse.links.Count
if &CreatePaymentResponse.links.Item(&i).method.ToLower() = "redirect"
&redirectLink = &CreatePaymentResponse.links.Item(&i).href
endif
endfor
endif
ユーザーが決済を確認すると、payerId と paymentId をパラメーターとして成功用の URL が呼び出されます。これらは後で決済の確認に使用されます。start イベントでそれらをパースし、決済を実行してユーザーにメッセージを表示します。
Success WebPanel は次のようになります:
Event Start
Do 'ParseString'
ExecutePaymentAPI(&paymentId,&payerId,&APIResponse,&ErrorCode)
if &ErrorCode = 0
Msg("決済成功")
endif
EndEvent
Sub 'ParseString'
&Regex = "="
&Parms = &httpRequest.QueryString
&Matches = &Parms.SplitRegEx(&Regex)
&paymentId = &Matches.Item(2).Replace("&token","")
&token = &Matches.Item(3).Replace("&PayerID","")
&payerId = &Matches.Item(4)
EndSub
|