ログインしたユーザーではなく、ビューからuser_idを渡す必要があります。
私は管理者の部分を書いています。
ユーザーのメールアドレスを使用してPOSTリクエストを行い、適切なページにリダイレクトしています。だから私は次のようなルートを作りたいです:
/:user_id/pay
適切なユーザーの支払いアクションを呼び出します。
私の見解では、電子メールとこのアクションへのリンクを表示したいと思います。
<% @users.each do |user| %>
<li>
<%= user.email %>
<%= link_to "Pay", some_controller_pay(user.id) %>
</li>
編集
def pay
require 'httpclient'
require 'xmlsimple'
clnt = HTTPClient.new
user = User.find(params[:user_id])
credentials = {
'USER' => 'payer_1342623102_biz_api1.gmail.com',
'PWD' => '1342623141',
'SIGNATURE' => 'Ay2zwWYEoiRoHTTVv365EK8U1lNzAESedJw09MPnj0SEIENMKd6jvnKL '
}
header = {"X-PAYPAL-SECURITY-USERID" => "payer_1342623102_biz_api1.gmail.com",
"X-PAYPAL-SECURITY-PASSWORD" => "1342623141",
"X-PAYPAL-SECURITY-SIGNATURE" => "Ay2zwWYEoiRoHTTVv365EK8U1lNzAESedJw09MPnj0SEIENMKd6jvnKL ",
"X-PAYPAL-REQUEST-DATA-FORMAT" => "NV",
"X-PAYPAL-RESPONSE-DATA-FORMAT" => "XML",
"X-PAYPAL-APPLICATION-ID" => "APP-80W284485P519543T"
}
data = {"actionType" => "PAY",
"receiverList.receiver(0).email"=> user.email,
"receiverList.receiver(0).amount" => "10",
"currencyCode" => "USD",
"cancelUrl" => root_path,
"returnUrl" => root_path,
"requestEnvelope.errorLanguage" => "en_US"}
uri = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"
res = clnt.post(uri, data, header)
@xml = XmlSimple.xml_in(res.content)
@payKey = @xml["payKey"].to_s()
@payKey = @payKey.tr("[]", "")
@payKey = @payKey[1..20]
redirect_to "https://sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=#{@payKey}"
PayPalは、エラーが発生したと言っています 。
私は変数を調べようとしているので、次のことを確認する必要があります。
<%= @xml%>
<%= payKey%>
しかし、idは機能しません、どうすればそれらを検査できますか?
開発ログ:
Redirected to https://sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=
Completed 302 Found in 1193ms (ActiveRecord: 1.0ms)
それで、それはリンクを挿入しません、そうですか?すべての回答情報を取得する方法
どうすればこれを行うことができますか?