Ruby on Rails アプリがあります。あるユーザーが別のユーザーに支払うことができるようにしたい場合は、アプリへの 10% の「コミッション」を差し引いてください。私のクライアントは、アプリが保持する 10% から手数料を引き出すことを望んでいます。これには 2 つの理由があります。1) ニッケルを使わない/顧客を薄暗くする 2) 一定量のトランザクション (月あたり) の後、パーセンテージが明らかに低くなります。
たとえば、ユーザー 1 がユーザー 2 に 100 ドルを支払った場合、次のように表示されるようにします。
ユーザー 1 がアプリに 100 ドルを送金 -> アプリが 97.09 ドル (手数料を差し引いた 100 ドル) を受け取る -> アプリがユーザー 2 に 90.00 (90%) を送信 -> ユーザー 2 が 90 ドルを全額受け取る (手数料なし)
ただし、アプリをプライマリ レシーバーとして設定しているにもかかわらず、セカンダリ レシーバーに料金が表示され、ユーザー 2 が料金を支払うことになります。また、ユーザー 2 をプライマリとして設定し、その後アプリに 10% のみを転送しようとしましたが、料金はプライマリ受信者に移動されました。コードで変更したのは、請求されるパーセンテージと、プライマリ/セカンダリ メールだけです。私のコードは次のようになります。
<!-- app/lib/pay_pal_api.rb -->
require "pp-adaptive"
class PayPalAPI
def self.payment_url(submission)
amount = submission.amount_in_cents.to_f / 100.0
recipient_cut = amount * 0.9
recipient_email = submission.submitter.paypal_email
client.execute(:Pay,
:action_type => "PAY",
:currency_code => "USD",
:cancel_url => "http://localhost:3000/my-studio",
:return_url => "http://localhost:3000/submissions/#{submission.id}",
:receivers => [
{ :email => recipient_email, :amount => recipient_cut, :primary => false },
{ :email => "TestApp@gmail.com", :amount => amount, :primary => true }
]
) do |response|
if response.success?
puts "Pay key: #{response.pay_key}"
# send the user to PayPal to make the payment
# e.g. https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=abc
return client.payment_url(response)
else
puts "#{response.ack_code}: #{response.error_message}"
end
end
return nil
end