【问题标题】:Return url not working when creating subscription on PayPal在 PayPal 上创建订阅时返回 url 不起作用
【发布时间】:2020-08-18 05:48:51
【问题描述】:

使用PayPal Basic Integration 在沙盒上测试指南使用新的订阅 API 创建订阅。产品和计划已创建。

订阅似乎已创建,随后收到的带有 HATEOS 链接的响应用于重定向到批准链接。然后向 Paypal 网站显示付款和协议页面,但在成功完成 PayPal 上的步骤后,它不会重定向到商家网站。取而代之的是一个大复选标记的图像,并说您“您设置了对 John Doe 的测试商店的订阅”。

当 PayPal 网站接受订阅协议时,该 url 在地址栏中包含“return=true”,并最终以该 url 结尾: https://www.sandbox.paypal.com/webapps/billing/subscriptions?ba_token=BA-7XD20193UM926691X&country.x=US&locale.x=en_US&mode=member&token=66576892AP560221M 显示复选标记的位置。

假设当 PayPal 重定向到商家网站时,响应将包含某种订阅详细信息,使商家网站能够为用户提供服务。

发送到订阅 API 的订阅请求:

{
    "plan_id": "P-37P31725GH704245LL2V467Q",
    "subscriber": {
        "name": {
            "given_name": "Givenname",
            "surname": "Surname"
        },
        "email_address": "xxREMOVEDxx"
    },
    "application_context": {
        "user_action": "SUBSCRIBE_NOW",
        "payment_method": {
            "payer_selected": "PAYPAL",
            "payee_preferred": "IMMEDIATED_PAYMENT_REQUIRED"
        },
        "return_url ": "https://localhost:44395/PayPal/SubscribeApproved",
        "cancel_url ": "https://localhost:44395/PayPal/cancel"
    }
}

HATEOS 回应:

{
    "status": "APPROVAL_PENDING",
    "status_update_time": "2020-05-02T19:26:56Z",
    "id": "I-SYF055DEEXGC",
    "plan_id": "P-37P31725GH704245LL2V467Q",
    "start_time": "2020-05-02T19:26:56Z",
    "quantity": "1",
    "subscriber": {
        "name": {
            "given_name": "Givenname",
            "surname": "Surname"
        },
        "email_address": "xxREMOVEDxx"
    },
    "create_time": "2020-05-02T19:26:56Z",
    "links": [
        {
            "href": "https://www.sandbox.paypal.com/webapps/billing/subscriptions?ba_token=BA-76D512072C206284F",
            "rel": "approve",
            "method": "GET"
        },
        {
            "href": "https://api.sandbox.paypal.com/v1/billing/subscriptions/I-SYF055DEEXGC",
            "rel": "edit",
            "method": "PATCH"
        },
        {
            "href": "https://api.sandbox.paypal.com/v1/billing/subscriptions/I-SYF055DEEXGC",
            "rel": "self",
            "method": "GET"
        }
    ]
}

【问题讨论】:

    标签: paypal paypal-sandbox paypal-subscriptions


    【解决方案1】:

    我认为,问题的存在是因为您使用了“localhost”网址。我有同样的问题,经过在线环境重定向测试后工作正常。尝试重定向到不同的域。


    对于本地测试,您可以使用https://ngrok.com/

    【讨论】:

    • 这看起来是正确的,但让事情变得非常痛苦。现在我需要以某种方式为 localhost 创建一个域。
    • 我认为ngrok.com 可能对此有所帮助
    【解决方案2】:

    您使用的是最新版本的Subscriptions API? 只是确保。它不受任何 SDKS 支持,并且需要直接从 PROD 调用 API 和创建计划

    你为什么要使用重定向?最好的解决方案是不使用任何重定向。完全没有。为了与现代网页设计实践保持一致,让您的网站在后台保持打开状态并呈现一个智能按钮,该按钮会打开一个“上下文”支付窗口。这提供了更好的支付体验。

    了解如何创建计划批准按钮here。

    【讨论】:

    • 不使用SDK,使用基础集成指南直接调用订阅API:developer.paypal.com/docs/subscriptions/integrate/…
    • Basic 集成站点说重定向到批准链接以获得用户的批准。当订阅被批准并开始时,支付按钮是否会向商家站点提供反馈,以便商家站点可以更新数据库和配置服务?
    猜你喜欢
    • 2013-12-24
    • 2014-05-04
    • 2021-11-20
    • 2019-12-09
    • 2020-05-30
    • 2014-10-21
    • 2015-03-04
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多