Как подключиться к Stripe серверу с устройства? - PullRequest
1 голос
/ 10 марта 2019

Я использую Stripe и сценарий ruby ​​с поддержкой sinatra и json для зарядки кредитных карт на iOS.Зарядка работает на имитаторе iPhone 6, но не на устройстве iPad mini с 9.3.5.

Я попытался изменить строку baseURL на свой IP-адрес, чтобы приложение могло подключиться к серверу htpp://192.168.1.11, но все равно получалоОшибка.Я даже попробовал что-то вроде http://192.168.1.11:4567.Как я могу заставить физическое приложение подключаться к серверу?

//original baseURL for the app
enum Constants {
...
static let baseURLString = "http://localhost:4567"
...
}

Симулятор iPhone 6

enter image description here

iPad mini version 9.3.5

enter image description here

В первоначальном учебном пособии использовались Swift 4, iOS 11, Xcode 9, но я изменил цель развертывания и подфайл на iOS9.

platform :ios, '9.0'

target 'RWPuppies' do
use_frameworks!

pod 'Alamofire', '~> 4.5'
pod 'AlamofireImage', '~> 3.3'
pod 'Stripe'
pod 'Cards'


end

Ruby-скрипт

#1
require 'sinatra'
require 'stripe'
require 'json'

#2
Stripe.api_key = 'YOUR_TEST_SECRET_KEY'

#3
get '/' do
status 200
return "RWPuppies back end has been set up correctly"
end

 #4
post '/charge' do
#5
payload = params
if request.content_type.include? 'application/json' and params.empty?
payload = indifferent_params(JSON.parse(request.body.read))
end

begin
#6
charge = Stripe::Charge.create(
  :amount => payload[:amount],
  :currency => payload[:currency],
  :source => payload[:token],
  :description => payload[:description]
 )
#7
rescue Stripe::StripeError => e
status 402
return "Error creating charge: #{e.message}"
end
#8
status 200
return "Charge successfully created"

end

Решено:

  1. Открыл файл info.plist моих проектов и добавилКлюч называется NSAppTransportSecurity в качестве словаря.Добавил подраздел с именем NSAllowsArbitraryLoads в качестве логического значения и установил его значение YES Как загрузить URL-адрес HTTP с включенной App Transport Security в iOS 9?

  2. установить baseURLString вhttp://192.168.1.11:4567

  3. Запустил скрипт из терминала как ruby web.rb -o 0.0.0.0 Невозможно получить доступ к локальному серверу Sinatra с другого компьютера в той же сети

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...