Skip to content

Instantly share code, notes, and snippets.

@creepycheese
Last active September 14, 2018 08:04
Show Gist options
  • Save creepycheese/f94c9e2a47b16f7303ba to your computer and use it in GitHub Desktop.
Save creepycheese/f94c9e2a47b16f7303ba to your computer and use it in GitHub Desktop.
Интеграция Яндекс.Кассы. Выплаты на различные счета.
require "yandex_kassa"
YandexKassa.configure do |config|
#url для тестовой среды Яндекс.Кассы
config.url = "https://bo-demo02.yamoney.ru:9094/webservice/deposition/api"
#Сертификат присланный вам сотрудником Яндекс.Денег
config.cert = "cert.cer"
#Сгенерированный вами приватный ключ, который ипользовался для запроса сертификата
config.key = "private.key"
#Сертификат для среды, к который вы будете делать запросы. Прислан сотрудником Яндекс.Денег
config.deposit = "deposit.cer"
#passphrase для ключа, если необходимо
config.passphrase = ""
end
api = YandexKassa.create
client_order_id = 160 # начальный clientOrderId, будет увеличиваться по мере совершения запросов на 1, чтобы все запросы имели уникальный clientOrderId
payment_params = { "skr_destinationCardSynonim" => "b0af887ae9ad01fe01ca65df7cff19a7b5fcbf9b_scn",
"pdr_firstName" => "Владимир",
"pdr_middleName" => "Владимирович",
"pdr_docNumber" => "4002109067",
"pdr_postcode" => "194044",
"pdr_country" => "643",
"pdr_city" => "Москва",
"pdr_adress" => "ул. Какая-то",
"pdr_birthDate" => "24.05.1987",
"pdr_birthplace" => "Новосибирск",
"pdr_docIssueYear" => "1999",
"pdr_docIssueMonth" => "7",
"pdr_docIssueDay" => "30",
"pdr_docIssuedBy" => "ТП",
"pof_offerAccepted" => 1,
"smsPhoneNumber" => "79653457676"
}
test_deposition_params = {
dst_account: "257003392579", amount: "100.00", currency: 10643,
agent_id: "200980", contract: "Fun stuff", client_order_id: client_order_id, request_dt: Time.now.iso8601,
payment_params: payment_params
}
["410039303350", "4100322407607", "410039303807"].each_with_index do |num, index|
puts "\n#{"*"*15}Счет: #{num}#{"*"*15}\n"
test_deposition_params[:dst_account] = num
puts "Запрос о возможности зачисления:"
puts api.test_deposition(test_deposition_params)
puts "\nЗачисление:"
test_deposition_params[:client_order_id] += 1
puts api.make_deposition(test_deposition_params)
puts "\nПовтор зачисления:"
puts api.make_deposition(test_deposition_params)
puts "\nРазовое на 1500р"
test_deposition_params[:amount] = "1500.00"
test_deposition_params[:client_order_id] += 1
puts api.make_deposition(test_deposition_params)
puts "\nПревышение лимита за период (6 платежей по 900р)"
6.times do
test_deposition_params[:client_order_id] += 1
test_deposition_params[:amount] = "900.00"
puts api.make_deposition(test_deposition_params)
end
puts "\nЗапрос баланса"
puts api.balance(test_deposition_params)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment