Ограничить Paypal принимать только платежи от клиентов США
Я использую Adaptive Payment и хочу переплатить продавцу после уменьшения моей комиссии:
Я хочу взимать различные ставки для внутренних (США) транзакций по сравнению с иностранными транзакциями.
Внутренние: 3,0% + 0,30 $ за транзакцию
PayPal: 2,9% + 0,30 долл. США за транзакцию
Чистая прибыль: +0,1%
Иностранные: 4,0% + 0,30 $ за транзакцию
PayPal: 3,9% + 0,30 долл. США за транзакцию
Чистая прибыль: +0,1%
Поскольку тарифы разные, я планировал разрешить оплату только клиентам из США. но я не знаю, откуда взята кредитная карта или какой тариф PayPal собирается взимать.
Более того, вот код, который мы используем для отправки запроса и не находим никаких параметров, ограничивающих его внутренними платежами.
@api = PayPal::SDK::AdaptivePayments::API.new
@pay = @api.build_pay({
:item_name => 'Invoiced #'+invoice.id.to_s+invoice.reason,
:invoice_amount => amount['total_amount'],
:actionType => "PAY",
:cancelUrl => pay_finish_members_invoices_url(:id=>token,:ttn_id=>ttn_token,:status=>"Cancel"),
:currencyCode => "USD",
:feesPayer => "PRIMARYRECEIVER",
:ipnNotificationUrl => pay_finish_members_invoices_url(:id=>token,:ttn_id=>ttn_token,:status=>"Completed"),
:trackingId => tmp_transaction.id.to_s,
:memo => "Single invoice paid by member directly.",
:receiverList => {
:receiver => [
{ :amount => amount['total_amount'],
:email => Trunk::PAYPAL_EMAIL,
:primary => true,
:paymentType => "SERVICE"
},
{ :amount => amount['coach_amount'],
:email => @site_settings.paypal_email,
:primary => false,
:paymentType => "SERVICE"
}
]
},
:returnUrl => pay_finish_members_invoices_url(:id=>token,:ttn_id=>ttn_token,:status=>"Completed"),
=begin
:fundingConstraint => {
:allowedFundingType => {
:fundingTypeInfo => [{
:fundingType => "BALANCE" }] }
},
=end
:sender => {
:useCredentials => false
}
})
@pay_response = @api.pay(@pay)
#abort(@pay_response.inspect)
if @pay_response.success?
@pay_response.payKey
@pay_response.paymentExecStatus
@pay_response.payErrorList
@pay_response.paymentInfoList
@pay_response.sender
@pay_response.defaultFundingPlan
@pay_response.warningDataList
params = {
:cmd => "_ap-payment",
:paykey => @pay_response.payKey
}
paypal_url = "#{Trunk::PAYPAL_URL}?#{params.to_query}"
tmp_transaction = TempTransaction.where(:id => tmp_transaction.id).first
tmp_transaction.txn_id = @pay_response.payKey
tmp_transaction.status = 1
tmp_transaction.save
redirect_to paypal_url and return
else
flash[:alert] = @pay_response.error.to_s
end