如何从设备连接到Stripe服务器?

时间:2019-03-10 05:02:03

标签: ios swift iphone

我正在使用Stripe以及启用了sinatra和json的ruby脚本在iOS上为信用卡收费。该费用适用于iPhone 6模拟器,但不适用于运行9.3.5的iPad mini设备。

我尝试将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版本9.3.5

enter image description here

原始教程使用Swift 4,iOS 11,Xcode 9,但是我将部署目标和podfile更改为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. 打开了我的Projects info.plist文件,并添加了一个名为NSAppTransportSecurity的密钥作为字典。添加了一个名为NSAllowsArbitraryLoads的子项作为布尔值,并将其值设置为YES How do I load an HTTP URL with App Transport Security enabled in iOS 9?

  2. 将baseURLString设置为http://192.168.1.11:4567

  3. ruby web.rb -o 0.0.0.0的身份从终端运行脚本 Cannot access local Sinatra server from another computer on same network

0 个答案:

没有答案