Я использую рельсы для создания приложения, в котором использование монетами использует paypal. Я использую кнопку общей покупки, созданную на сайте Paypal. У меня есть кнопка, задающая IPN для URL-адреса на моем веб-сайте. Раньше у меня были проблемы с аутентификацией, но, используя приведенный ниже код, я решил это. Проблема в том, что когда IPN уведомляет контроллер, но сеанс уничтожается, поэтому я не могу использовать монеты. Итак, мой вопрос: как я могу получить/сохранить сеанс или пользователя, чтобы я мог добавить монеты в правильную учетную запись?Как связать пользователя с IPN
пользователя Модель (соответствующие части):
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
# Gets the amount of coins the user currently has.
# @return The amount of coins the user has.
def get_coins
self.coins
end
# Adds an amount of coins to the user and saves to the database.
# @param amount The amount of coins to add to the user.
def add_coins(amount)
full_amount = amount + self.coins
self.coins = full_amount
self.save
end
Контроллер точки IPN в:
class PaymentNotificationsController < ApplicationController
before_action :authenticate_user!, :except => [:create]
# POST /payment_notifications
# POST /payment_notifications.json
def create
puts "made it here"
#PaymentNotification.create!(:params => params)
user =User.find(session[:user_id])
user.coins += 100
user.save!
render :nothing => true
end
end
в настоящее время выше код ошибки говоря «не могу найти пользователя с идентификатором = "
Контроллер приложения:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :authenticate_user!
skip_before_filter :verify_authenticity_token
end
эй снова. Отправьте код модели для своего пользователя и IPN. – errata
У меня нет кода для IPN. Что касается Пользователя, можете сделать. – Noob
Чтобы уточнить, что я не кодировал IPN, я использую только «payful» defualt, который я настроил в профиле учетной записи моего фасилитатора. Насколько я знаю, он установил параметры, которые я не знаю, как их изменять. Что касается пользователя, добавлен код. Также спасибо за помощь. – Noob