两个用户之间的数字商品嵌入式自适应支付-对IPN的需求感到困惑


Embedded Adaptive Payments for digital goods between 2 users - confused about the need for an IPN

我正在为一个客户构建一个网站,该客户希望网站上的用户能够出售电子书,网站成员和非成员都可以购买。网站本身根本没有参与交易。

我选择了自适应支付,因为这似乎有助于两个用户之间的"对等"交易,因为该网站不涉及,也不收取任何费用。我正在使用上的指南https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/integration-guide/APIntro/

不幸的是,托管使用的是php5.2.17,这意味着我不能在github上使用php API代码,所以我不得不使用php来滚动我自己的代码。这不是问题,我以前也做过很多次类似的事情。我已经设法让沙箱以以下方式工作

  • 用户发起购买
  • 我的网站呼叫https://svcs.sandbox.paypal.com/AdaptivePayments/Pay使用以下json编码的数组:

    $payload = array(
    'actionType' => 'PAY',
    'currencyCode' => $currencyCode,
    'receiverList' => array(
        'receiver' => array(
            array(
                'amount' => $amount,
                'email' => $receiverEmail,
                'paymentType' =>  "DIGITALGOODS"
            )
        )
    ),
    'returnUrl' =>$successUrl,
    'cancelUrl' => $cancelUrl,
    'requestEnvelope' => array(
        'errorLanguage' => 'en_US',
        'detailLevel' => 'ReturnAll'
    )                   
    );
    
  • 这给了我一个付费ID

  • 然后我把提交给https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay
  • 当用户点击"立即支付"时,贝宝灯箱弹出
  • 如果付款完成,贝宝会将我返回到我的返回url
  • 然后我显示下载链接

然而当我查看沙盒时,我发现最新的付款正在审查中(显然,根据澳大利亚法律,我的沙盒余额为10000,这将我标记为潜在的恐怖分子。见图),这让我觉得也许我需要制作一个IPN,尽管上面列出的开发人员文档没有提及。我最不想做的事就是启用一个付款被拒绝的下载。

所以我想我的问题是:贝宝调用我的返回URL是否足以允许下载数字商品,或者我应该设置一个IPN,等待贝宝点击它再授权下载?

PayPal是一个PITA 没有任何争论。

回到您的问题当付款通过时,当它调用您的返回URL时,您应该验证付款是否正确。它应该向您发送一个令牌/交易,您可以查询和检查其支付状态。没有使用过自适应支付那么多,但您应该始终确保在授予访问权限之前完成付款。