swift - 如何使用 iOS 将送货地址添加到 Stripe

标签 swift ruby stripe-payments payment

我按照 Stripe 和 iOS 的“Accepting Credit Cards In Your iOS App Using Stripe”教程进行操作,并成功获得付款,直到我可以在 Stripe 仪表板中看到订单。

现在我还需要在订单中包含送货地址

在我的应用程序“StripeClient.swift”中:

func completeCharge(with token: STPToken, amount: Double, completion: @escaping (Result) -> Void) {
        let url = baseURL.appendingPathComponent("charge")
        let params: [String: Any] = [
            "token": token.tokenId,
            "amount": amount,
            "currency": Constants.defaultCurrency,
            "description": Constants.defaultDescription,
            "shipping": address
        ]
        Alamofire.request(url, method: .post, parameters: params)
            .validate(statusCode: 200..<300)
            .responseString { response in
                switch response.result {
                case .success:
                    completion(Result.success)
                case .failure(let error):
                    completion(Result.failure(error))
                }
        }
    }

我的服务器是:“web.rb”:

require 'sinatra'
require 'stripe'
require 'json'

Stripe.api_key = ##Secret Key

get '/' do

  status 200
  return "GT Hockey backend has been set up correctly"
end

post '/charge' do

  payload = params
  if request.content_type.include? 'application/json' and params.empty?
    payload = indifferent_params(JSON.parse(request.body.read))
  end

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

  status 200
  return "Charge successfully created"
end

我能够正确添加应用程序中 address 变量中包含的送货地址,但我认为服务器类及其在 Stripe 中创建订单的方式存在问题。

最佳答案

看来运输需要子参数地址名称。我想费用可能不会显示运费,因为您缺少 name 参数。有关如何完成的引用,请在下面的 API 引用中查找 Order.create:

我知道您正在创建费用,但订单和费用之间包含运费的语法是相同的。

https://stripe.com/docs/api/charges/create?lang=ruby

关于swift - 如何使用 iOS 将送货地址添加到 Stripe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59240862/

相关文章:

javascript - 使用某些 JS 框架的可重用组件或小部件

ios - 没有这样的模块 `Quick` 使用 cocoapods

ios - 在 Controller Init 上分配 viewModel?

ruby - 在 Ruby 上获取 OpenSSL::X509::CertificateError 嵌套 asn1 错误

ruby-on-rails - Rails,如何在 where 语句中使用 block

node.js - Stripe 将支付方式添加到试用订阅,然后验证信用卡

ios - 如何将新对象插入到实体中并设置该对象与另一个实体的现有对象的关系?

ios - 无法实现 SKSprite 类。没有错误信息,只是不显示

ruby-on-rails - Ruby on Rails 外壳 : Why Use Caps Here?

javascript - 此 PaymentMethod 之前使用过但未附加到客户或已与客户分离,并且可能不会再次使用