PayPal订阅API集成

时间:2019-03-20 13:25:22

标签: paypal paypal-subscriptions

我尝试将Subscriptions 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 个答案:

答案 0 :(得分:0)

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

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