我正在尝试在基于 Rails3 的电子商务应用程序中实现 PaypalExpressCheckout。
应用程序中将有两个角色 - 卖方和买方
- 卖家可以创建产品,他可以添加他有效的 Paypal 电子邮件地址来代表他销售的产品获取金额。
- 买家可以购买商品并可以通过Paypal结账,一旦用户交易成功,金额将转入卖家账户。
我在这里面临的问题是,当买家结账时,金额已成功转入卖家账户,但并未从买家账户中扣除。
我从 Paypal 沙箱配置了 API 凭据,下面是我在 ActiveMerchant gem 中使用的方法:
从控制器:
def checkout
values = {:ip => request.remote_ip,
:return_url => confirm_paypal_url(@payment),
:cancel_return_url => root_url, :shipping => 0,
:handling => 0, :tax => 0,
:items => get_items(session[:cart])}
response = @payment.setup_purchase(values)
redirect_to @payment.redirect_url_for(response.token)
end
## CALL BACK
def paypal
# session[:product_users] = [{:amount => '100', :email => 'xx@x.com'}]
session[:product_users].each do |user|
@payment = if user.last.nil?
@payment.purchase(:token => params[:token], :payer_id => params[:PayerID], :ip => request.remote_ip)
else
@payment.transfer(user[:amount], user[:email])
end
@payment.save
end
redirect_to billing_thank_you_url(@payment)
end
从型号:
def setup_purchase(options)
gateway.setup_purchase(amount * 100, options)
end
def transfer(amount, receiver)
response = gateway.transfer(amount * 100, receiver, :subject => "Payment from XXX")
end
如果有人在这方面帮助我,我将不胜感激。
谢谢你