0

我有功能,付费用户:

    def pay
    require 'httpclient'
    require 'xmlsimple'
    clnt = HTTPClient.new
    user = User.find(params[:user_id])
    @params_id = params[:user_id]
    credentials = {
        'USER' => 'payer_1342623102_biz_api1.gmail.com',
       'PWD' => '1342623141',
       'SIGNATURE' => 'Ay2zwWYEoiRoHTTVv365EK8U1lNzAESedJw09MPnj0SEIENMKd6jvnKL '
     }

    header =  {"X-PAYPAL-SECURITY-USERID" => "payer_1342623102_biz_api1.gmail.com",
                   "X-PAYPAL-SECURITY-PASSWORD" => "1342623141",
                   "X-PAYPAL-SECURITY-SIGNATURE" => "Ay2zwWYEoiRoHTTVv365EK8U1lNzAESedJw09MPnj0SEIENMKd6jvnKL ",
                   "X-PAYPAL-REQUEST-DATA-FORMAT" => "NV",
                   "X-PAYPAL-RESPONSE-DATA-FORMAT" => "XML",
                   "X-PAYPAL-APPLICATION-ID" =>  "APP-80W284485P519543T"
                    }
    //here is data what is posting to PayPal
    data = {"actionType" => "PAY",
               "receiverList.receiver(0).email"=> user.email,
               "receiverList.receiver(0).amount" => "10",
               "currencyCode" => "USD",
               "cancelUrl" => "http://127.0.0.1:3000/",
               "returnUrl" => "http://127.0.0.1:3000/",          
               "requestEnvelope.errorLanguage" => "en_US"}
    uri = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"
    res = clnt.post(uri, data, header)

从文档结束:

     Adaptive Payments API operation  - use -
  ipnNotificationUrl field of the Pay or Preapproval request

所以,我应该添加到数据变量中:

        "ipnNotificationUrl" => "myaapp.com"//my site url yes ?

我应该在这个字段中输入我的网站网址吗?

如何从此通知中获取信息?

如果交易成功,如何发送一些电子邮件并执行一些操作?

我不能在本地测试它,是吗?

如何在沙盒中测试它?

4

1 回答 1

1

是的,如果您想接收与付款相关的通知,您应该包含该字段,

您需要指定一个可从外部访问的 URL(因为这是 PayPal 将从其服务器发布信息的位置)。

这个 URL 可以是一个 PHP 页面,在收到 IPN 并对其进行验证后,会发送您提到的电子邮件。

要模拟来自 PayPal 的 IPN,您可以使用沙盒开发者页面中的以下工具:https ://developer.paypal.com/cgi-bin/devscr?cmd=_ipn-link-session

(或者,您可以在沙箱中完成购买,如果您在 API 调用中指定了 ipnNotificationURL,PayPal 将在付款完成后发送给您)

于 2012-07-23T01:50:14.520 回答