贝宝订阅 API 集成

Posted

技术标签:

【中文标题】贝宝订阅 API 集成【英文标题】:PayPal Subscriptions APIs Integration 【发布时间】:2019-08-11 05:00:34 【问题描述】:

我尝试将订阅 API 集成到我的网站。 首先,我不确定是否应该使用此 API 或计费协议 API,我只想每月向我的客户收取固定金额...

我正在使用 PayPal 推荐的最新集成步骤: https://developer.paypal.com/docs/limited-release/subscriptions

不管怎样,

我创建了一个产品、一个计划和一个订阅, 最后我得到了一个 id (I-2PR5ANJT6J4C)

我尝试在 PayPal 按钮中使用此 ID:

<script src="https://www.paypal.com/sdk/js?client-id=sb&currency=ILS"></script>
<script>paypal.Buttons(
    style: 
        shape: 'pill'
    ,
    env: 'sandbox', // Or 'production'
    // Set up the payment:
    // 1. Add a payment callback
    createOrder: function(data, actions) 
        // 2. Make a request to your server
        return new Promise(function(resolve) 
            return resolve('I-2PR5ANJT6J4C');
        )
    ,
    // Execute the payment:
    // 1. Add an onAuthorize callback
    onAuthorize: function(data, actions) 
        // 2. Make a request to your server
        return actions.request.post('/my-api/execute-payment/', 
            paymentID: data.paymentID,
            payerID:   data.payerID
        )
            .then(function(res) 
                // 3. Show the buyer a confirmation message.
            );
    
).render('#paypal-button-container');</script>

我得到了这个错误:

Uncaught Error: I-2PR5ANJT6J4C does not match pattern for order-id, ec-token or cart-id

还有其他人遇到过这个问题吗?如何将订阅 ID 传递给按钮才能正常工作?

谢谢, 阿萨夫

【问题讨论】:

【参考方案1】:

这个问题有点老了,但如果您或其他人仍在寻找答案,只需使用createSubscription 而不是createOrder

createSubscription: function(data, actions) 
    // 2. Make a request to your server
    return new Promise(function(resolve) 
        return resolve('I-2PR5ANJT6J4C');
    )

【讨论】:

以上是关于贝宝订阅 API 集成的主要内容,如果未能解决你的问题,请参考以下文章

贝宝订阅与定期?

贝宝订阅与定期?

贝宝订阅与定期?

贝宝订阅与定期?

贝宝订阅与定期?

贝宝订阅集成和修改订阅问题