如何从贝宝交易中获取国家和州?

Posted

技术标签:

【中文标题】如何从贝宝交易中获取国家和州?【英文标题】:How to get the country and state from a paypal transaction? 【发布时间】:2015-09-20 18:18:16 【问题描述】:

我想知道如何在 paypal 交易中从账单地址获取国家和州。

到目前为止,我可以通过下面的代码获得一个交易对象:

  # ...
  def self.paypal_transaction_details(txn_id)
    @api = PayPal::SDK::Merchant.new
    get_transaction_details = @api.build_get_transaction_details(:TransactionID => txn_id )
    response = @api.get_transaction_details(get_transaction_details)
  end

是否可以获取位置信息?还是应该使用地理编码器从 IP 地址获取国家和州?

参考:https://github.com/paypal/merchant-sdk-ruby

回应:

response.PaymentTransactionDetails.PayerInfo.Address
 => #<PayPal::SDK::Merchant::DataTypes::AddressType:0x007fd58f604660 @AddressOwner="PayPal", @AddressStatus="None">

提前致谢

【问题讨论】:

当您获得交易详情时,您应该能够获得用于付款的任何地址。但是,请注意 PayPal 并不总是有一个“帐单地址”——这是一个信用卡概念。 PayPal 通常不发送账单,因此账户默认没有账单地址。如果货物已发货,则有一个发货地址,并且所有帐户都有一个国家代码。 【参考方案1】:

我不确定你是否在使用这个gem 'paypal-sdk-rest'

但如果你是,当你创建付款时 你可以做

require 'paypal-sdk-rest'
include PayPal::SDK::REST

PayPal::SDK::REST.set_config(
  :mode => "sandbox", # "sandbox" or "live"
  :client_id => "EBWKjlELKMYqRNQ6sYvFo64FtaRLRR5BdHEESmha49TM",
  :client_secret => "EO422dn3gQLgDbuwqTjzrFgFtaRLRR5BdHEESmha49TM")

# Build Payment object
@payment = Payment.new(
  :intent => "sale",
  :payer => 
    :payment_method => "credit_card",
    :funding_instruments => [
      :credit_card => 
        :type => "visa",
        :number => "4567516310777851",
        :expire_month => "11",
        :expire_year => "2018",
        :cvv2 => "874",
        :first_name => "Joe",
        :last_name => "Shopper",
        :billing_address => 
          :line1 => "52 N Main ST",
          :city => "Johnstown",
          :state => "OH",
          :postal_code => "43210",
          :country_code => "US" ],
  :transactions => [
    :item_list => 
      :items => [
        :name => "item",
        :sku => "item",
        :price => "1",
        :currency => "USD",
        :quantity => 1 ],
    :amount => 
      :total => "1.00",
      :currency => "USD" ,
    :description => "This is the payment transaction description." ])

# Create Payment and return the status(true or false)
if @payment.create
  @payment.id     # Payment Id
else
  @payment.error  # Error Hash
end

我希望这会有所帮助。 附言。 你必须先请求信息,如果没有,当你想取回它们时会有 nil 或 ''

【讨论】:

感谢您的帮助。我正在使用 Mercer-SDK-Ruby 宝石。付款直接通过贝宝处理。我们的系统通过 IPN URL 收到通知

以上是关于如何从贝宝交易中获取国家和州?的主要内容,如果未能解决你的问题,请参考以下文章

如何从贝宝获得成功或失败响应?

从贝宝转账到信用卡

从贝宝快递结帐中删除送货地址

如何在贝宝的 notify_url 页面中获取交易详情

贝宝 PDT 缺少变量

通过贝宝付款完成后如何获取交易详情