【问题标题】:Paypal adaptive payments for digital goodsPaypal 自适应支付数字商品
【发布时间】:2013-07-07 18:01:11
【问题描述】:

我正在努力弄清楚如何让数字商品与我的自适应支付一起使用。我正在使用Paypal ruby gem,有人可以给我看一个代码示例,用于使用 2 个接收者和Digital Goods 进行付款吗?

我已获准使用 paypal 进行小额付款。

# Build request object
        @pay = @api.build_pay({
          :actionType => "PAY",
          :cancelUrl => "http://localhost:3000/account", #sandbox
          :currencyCode => "USD",
          #:feesPayer => "SENDER",
          :ipnNotificationUrl => "http://596w.localtunnel.com/pay/#{purchased.id}", #sandbox
          :memo => "Test payment",
          :receiverList => {
            :receiver => [{
              :amount => price.round(2),
              :email => "an email", #sandbox
              :paymentType => "DIGITALGOODS",
              :primary => true
              },
              unless account.user.email == "an email"
              {
                :amount => mycut.round(2),
                :email => "anemail", #sandbox
                :paymentType => "DIGITALGOODS" 
                }
              end
                ] },
          :returnUrl => "http://localhost:3000/pay/complete/" #sandbox 
          })

我得到错误:

This feature (Digital Goods) is not supported.

【问题讨论】:

  • 对单个接收器有效吗?还是默认:paymentType?您是否在 build_pay 调用时收到此错误?

标签: ruby-on-rails ruby-on-rails-3 paypal


【解决方案1】:

如果您成功获取payKey但稍后将用户重定向到错误的url,则可能会出现此错误。

这是嵌入式支付表单的haml代码,包括数字商品。

= javascript_include_tag "//www.paypalobjects.com/js/external/apdg.js"

%form.text-center{:action => ::PAYPAL_ADAPTIVE_GATEWAY.embedded_flow_url, :target => "PPDGFrame"}
  %input#type{:name => "expType", :type => "hidden", :value => "light"}
  %input#paykey{:name => "payKey", :type => "hidden", :value => @payKey}
  %input#submitBtn{:type => "submit", :value => 'Pay with PayPal' }

:javascript
  var returnFromPayPal = function(){
  //do something on PayPal popup closing here
  };
  var dgFlowMini = new PAYPAL.apps.DGFlowMini({ trigger: 'submitBtn', callbackFunction: returnFromPayPal});

  //works only for lightbox mode
  function MyEmbeddedFlow(embeddedFlow) {
      this.embeddedPPObj = embeddedFlow;
      this.paymentSuccess = function () {
           this.embeddedPPObj.closeFlow();
           // handle payment success here
           window.location.reload(true);
      };
      this.paymentCanceled = function () {
           this.embeddedPPObj.closeFlow();
           // handle payment cancellation here
           window.location.reload(true);
      };
   }
   var myEmbeddedPaymentFlow = new MyEmbeddedFlow(dgFlowMini);

::PAYPAL_ADAPTIVE_GATEWAY.embedded_flow_url 来自activemerchant,您可以使用'https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay' 用于沙盒或'https://www.paypal.com/webapps/adaptivepayment/flow/pay' 用于生产。

【讨论】:

    【解决方案2】:

    https://www.paypal.com/mts 注册一张票,他们会为您启用它。 对于它的价值,您尝试使用的产品是:用于 Express Checkout 的数字商品。 Express Checkout 本身默认适用于所有帐户,但该团队可以在您的 Sandbox 帐户上启用数字商品。

    【讨论】:

      【解决方案3】:

      据我所知,Paypal 的 Express Payment 选项支持数字商品。如果您可以将集成替换为使用activemerchant 并使用PaypalDigitalGoodsGateway,您会帮自己一个忙。

      【讨论】:

        猜你喜欢
        • 2017-08-09
        • 2015-08-03
        • 2016-07-31
        • 2015-07-19
        • 2021-08-04
        • 2015-03-27
        • 2014-10-13
        • 2013-11-10
        • 2013-11-07
        相关资源
        最近更新 更多