标签: paypal-rest-sdk

PayPal REST API:如何立即付款而无需要求送货地址

我正在尝试使用PayPal REST API而不是PayPal Classic API,但似乎REST API缺少Classic API具有的两个功能:

  1. 立即付款:当用户进入Pay​​Pal页面时,向他显示"立即付款"按钮而不是"继续"按钮,并且"您差不多完成了.您将确认您的付款..."短语.
  2. 没有送货地址:在PayPal页面上避免要求用户确认他的送货地址(在Classic API中使用NOSHIPPING = 1参数完成,如果我记得很清楚)

所以我的问题是:是否可以在不使用REST API查询送货地址的情况下立即执行付款?我是否必须回到Classic API?

我在这里提供了一些关于我如何使用PayPal REST API的更多信息.我正在使用PayPal REST Java SDK.这是一个示例请求:

{
  "intent": "sale",
  "payer": {
    "payment_method": "paypal"
  },
  "transactions": [
    {
      "amount": {
        "currency": "USD",
        "total": "5",
        "details": {
          "subtotal": "5"
        }
      },
      "description": "This is the payment transaction description.",
      "item_list": {
        "items": [
          {
            "quantity": "1",
            "name": "Item 1",
            "price": "5",
            "currency": "USD"
          }
        ]
      }
    }
  ],
  "redirect_urls": {
    "return_url": "http://XXX/handlePayment.jsp?guid\u003dXXX",
    "cancel_url": "http://XXX/cancelPayment.jsp?guid\u003dXXX"
  }
}
Run Code Online (Sandbox Code Playgroud)

它的回应是:

{ …
Run Code Online (Sandbox Code Playgroud)

paypal paypal-rest-sdk

7
推荐指数
2
解决办法
5222
查看次数

PayPal Rest API直接付款

我目前让我的网站通过PayPal接受付款.我使用REST SDKPHP SDK来处理这个问题.这是我通过我的网站处理付款的步骤:

  1. 创建一个意图设置为"销售",付款方式设置为"paypal"并将重定向网址设置为确认页面的付款.
  2. 在确认页面上,我将返回的paymentId和PayerID(来自查询字符串)存储在步骤3中使用.
  3. 一旦用户确认订单,我就执行在步骤2中存储的paymentId和PayerID中的支付.

这是一种享受.但是,我想让用户选择通过PayPal(如上所述)或通过我的网站(使用PayPal直接付款)处理付款.

对于直接付款,我已经能够通过将意图设置为"促销",将付款方式设置为"credit_card"并传递相应的卡详细信息来成功创建付款.但是,我不确定我是否需要像之前那样执行付款,或者付款是否自动完成.

如果我确实需要执行付款,那么如何获得paymentId和PayerID?如果我不需要执行付款,则会出现问题,因为我希望用户确认付款.我可以将创建支付内容移动到仅在用户确认直接付款订单后才执行,但是在用户输入后我无法验证卡详细信息.我想知道是否有更好的方法来处理这个问题?

如果有人能帮忙解决这个问题,我会很感激.谢谢

paypal-sandbox paypal-rest-sdk

7
推荐指数
1
解决办法
409
查看次数

Paypal Restful - 无法解析主机

我有一个"Paypal PHP Restful SDK"的问题.我的问题是,(在沙箱模式下)我有时会得到错误" 无法解析主机 ......".这种情况发生在沙箱模式的每第10个支付会话中.

这里记录的错误:

mod_fcgid: stderr: PHP Fatal error:  Uncaught exception 'PayPal\\Exception\\PayPalConnectionException' with message 'Could not resolve host: api.sandbox.paypal.com' in /var/www/xxxxx.com/httpdocs/app/paypal/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php:137
Run Code Online (Sandbox Code Playgroud)

来自SDK的腐蚀线是:

//Throw Exception if Retries and Certificates doenst work
if (curl_errno($ch)) {
    $ex = new PayPalConnectionException(
        $this->httpConfig->getUrl(),
        curl_error($ch),
        curl_errno($ch)
    );
    curl_close($ch);
    throw $ex;
}
Run Code Online (Sandbox Code Playgroud)

信息:我的vServer上没有证书

有人知道,什么是错误的?

php paypal paypal-rest-sdk

7
推荐指数
1
解决办法
1058
查看次数

通过Paypal Express Checkout客户端JS按钮实现使用负面测试

我目前正在使用客户端JS方法进行PayPal Express结账集成以进行付款.我希望利用他们的"负面测试"功能来尝试模拟潜在的错误并为客户提供适当的响应.

只需参考相关文档页面,以供参考

它似乎启用了否定测试,您需要传递额外的标题以及付款请求,指定您要为该付款触发的特定错误.

这是我目前用于设置事务的JS:

<script>

//We need to convert our generated json string into a bonified javascript object
var paypal_transaction = JSON.parse(JSON.stringify(<?php echo $paypal_json; ?>));

paypal.Button.render({

    env: 'sandbox', // 'production'/'sandbox',

    commit: true, // Show a 'Pay Now' button - Allows us to capture the payment right away

    client: {
        sandbox:   'Ab_hPp7h70DoFKChLMSynNxacQQbGcb_tP1cDbzW9jC6a0rYIZH0CkEYYfkw6csvmlyTmfLnagelqB85',
        production:''
    },

    //How we want the button to look
    style: {
        size: 'responsive',
        color: 'gold',
        shape: 'rect',
        label: 'pay'
    },

    headers: {
                '{"mock_application_codes":"INSTRUMENT_DECLINED"}'


    }



    payment: function(data,actions) …
Run Code Online (Sandbox Code Playgroud)

javascript paypal paypal-sandbox paypal-rest-sdk

7
推荐指数
1
解决办法
438
查看次数

Django python paypalrestsdk - 没有'Access-Control-Allow-Origin'和ppxo_unhandled_error错误

我试图使用paypalrestsdk实现与Django PayPal.

我按照示例中的代码示例进行了操作:https://prettyprinted.com/blog/1125955/creating-paypal-express-payments-in-flask

但是有这个错误:

这是我的模板.html,views.py和urls.py的代码片段 https://gist.github.com/axilaris/1e6e34ba5915abceb0dbd06d46baf08b

这是显示按钮的模板代码:

<div id="paypal-button"></div>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>

<script>
    var CREATE_PAYMENT_URL  = 'http://127.0.0.1:8000/payment_create';
    var EXECUTE_PAYMENT_URL = 'http://127.0.0.1:8000/payment_execute';                        

    paypal.Button.render({

        env: 'sandbox', // Or 'sandbox'

        commit: true, // Show a 'Pay Now' button

        payment: function() {
            console.log("payment function")
            return paypal.request.post(CREATE_PAYMENT_URL).then(function(data) {
                console.log("return create payment")
                return data.paymentID;
            });
        },

        onAuthorize: function(data) {
            return paypal.request.post(EXECUTE_PAYMENT_URL, {
                paymentID: data.paymentID,
                payerID:   data.payerID
            }).then(function(res) {

                console.log(res.success)
                // The payment is complete!
                // You can now show a confirmation message to the …
Run Code Online (Sandbox Code Playgroud)

python django paypal paypal-rest-sdk

7
推荐指数
1
解决办法
259
查看次数

使用 PayPal API 计算活跃订阅数?

我需要使用 PHP 来计算我的 PayPal 帐户中的活跃订阅数量(订阅我的服务的人数,而不是我订阅的服务的数量)。

有谁知道如何做到这一点或者可以指出我正确的方向?

我找不到任何允许您通过 API 查看活动订阅列表的文档,但我假设 PayPal 有此选项,但我只是错过了它......

php paypal paypal-subscriptions paypal-rest-sdk

7
推荐指数
1
解决办法
3593
查看次数

Paypal JS SDK智能付款-禁用无帐户的信用卡付款地址提示

我正在将智能付款按钮集成到贝宝结帐中

<script src="https://www.paypal.com/sdk/js?...>
paypal.Buttons({
createOrder(data, actions) {
// ...
onApprove(data, actions) {
// ...
}).render('#paypal-button');
Run Code Online (Sandbox Code Playgroud)

除了使用贝宝(PayPal)帐户付款外,我们还希望用户无需创建贝宝(Paypal)帐户即可使用SEPA或信用卡为我们的数字产品付款

什么我们不要求是来自用户的账单地址或送货地址输入。我们已经掌握了这些信息,可以自行处理帐单,但不适用于运送。

有什么方法可以使用JS SDK 禁用地址输入(最好还有联系信息输入)?我可以传递给SDK资源或paypal.Buttons.render()方法的任何参数?通过其他付款提供商使用信用卡付款时,他们永远不会在乎该用户信息。对于一个好的用户体验,仅数字,到期时间和CVS应该很重要。即使输入CC号码也已经很麻烦了。SEPA付款也是如此。我只是不希望用户必须输入他们的地址。

还是我必须将客户信息传递给PayPal以帮助预防欺诈?如果是这样,我至少可以禁用“运送到帐单地址”复选框吗?这可能会使我们的用户感到困惑。

谢谢!

javascript paypal paypal-sandbox paypal-rest-sdk

7
推荐指数
1
解决办法
745
查看次数

如何从 v1/catalogs API 中删除 PayPal 产品?

我想从删除产品catalogs,但我找不到任何API执行此操作的方法,这里是文档

我知道如何获得所有产品:

https://api.sandbox.paypal.com/v1/catalogs/products?page_size=10&page=1&total_required=true
Run Code Online (Sandbox Code Playgroud)

这将返回如下内容:

{
"products": [
    {
        "id": "PROD-8DN39312TB525331M",
        "name": "Video Streaming Service",
        "description": "Video streaming service",
        "create_time": "2020-01-07T18:50:01Z",
        "links": [
            {
                "href": "https://api.sandbox.paypal.com/v1/catalogs/products/PROD-8DN39312TB525331M",
                "rel": "self",
                "method": "GET"
            }
        ]
    },
   ...
Run Code Online (Sandbox Code Playgroud)

有没有实际的方法来删除产品?

paypal paypal-subscriptions paypal-sandbox paypal-rest-sdk

7
推荐指数
1
解决办法
1050
查看次数

Paypal Refund Rest Api v2 - 由于权限不足,授权失败

我能够成功执行以下 API

/v2/checkout/orders
/v2/checkout/orders/{order_id}/authorize
/v2/checkout/orders/{order_id}/capture
Run Code Online (Sandbox Code Playgroud)

为什么在执行此处所述的 PayPal 退款时会收到“NOT_AUTHORIZED”响应?- https://developer.paypal.com/docs/api/payments/v2/#captures_refund

POST 请求

https://api.sandbox.paypal.com/v2/payments/captures/<Capture ID I got from capture request>/refund
Run Code Online (Sandbox Code Playgroud)

回复

    {
    "name": "NOT_AUTHORIZED",
    "message": "Authorization failed due to insufficient permissions.",
    "debug_id": "6c6xxxxx6c",
    "details": [
        {
            "issue": "PERMISSION_DENIED",
            "field": "capture_id",
            "value": "XXXXXXXXX",
            "description": "You do not have permission to access or perform operations on this resource.",
            "location": "path"
        }
    ],
    "links": [
        {
            "href": "https://developer.paypal.com/docs/api/v2/payments/#NOT_AUTHORIZED",
            "rel": "information_link"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

paypal paypal-sandbox paypal-rest-sdk

6
推荐指数
1
解决办法
2132
查看次数

如何在 PayPal 智能按钮交易中发送自定义数据字段

我是 PayPal 集成的新手,但我已成功使用客户端 JavaScript SDK 创建按钮并完成交易。我还添加了一个 webhook,用于侦听 PAYMENT.CAPTURE.* 事件并将返回数据记录到我自己的数据库中的交易表中。缺点是我无法跟踪交易针对的是哪个服务或客户。因此,我想知道如何在按钮中添加至少一个自定义字段,以便它在 webhook POST 中返回给我,以便我可以为该特定客户执行一些业务逻辑。

我最初的选择是发布数据返回onApprove:(data, actions)=>{},但如果在此之前发生灾难性事件(例如断电或一般客户端-服务器连接故障),我将没有恢复选项。

现在我的 JS 基本代码如下:

try{
        paypal.Buttons({

        // Set up the transaction
        createOrder: function(data, actions) {
            return actions.order.create({
                purchase_units: [{
                    amount: {
                        value: charge.amount,
                        currency_code:'USD'
                    }
                }]
            });
        },
        // Finalize the transaction
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                console.log(details);
                if(details.status == "COMPLETED"){
                  localStorage.clear();
                  window.location.href = "thank-you";
                }
                //alert('Transaction completed by ' + details.payer.name.given_name + '!');
            });
        }


    }).render('#paypal-button-container');
  }catch(e){
     console.error('PayPal not loaded!');
  }
Run Code Online (Sandbox Code Playgroud)

javascript paypal paypal-rest-sdk

6
推荐指数
1
解决办法
4882
查看次数