捕获贝宝订单后如何呈现模板?

时间:2020-08-20 00:16:31

标签: python paypal

我正在实现贝宝服务器端付款按钮。我设法创建了订单并捕获了订单。

现在,我想在捕获订单时呈现成功模板,但我不知道在哪里,因为这里我返回了json响应,但是当付款成功后如何呈现模板?应该怎么做?

def capture(request, order_id, mail):
    if request.method == "POST":
        capture_order = OrdersCaptureRequest(order_id)
        environment = SandboxEnvironment(client_id=value, client_secret=value)
        client = PayPalHttpClient(environment)

        response = client.execute(capture_order)
        data = response.result.__dict__['_dict']
        letter = Letter.objects.filter(mail=mail).first()


        return JsonResponse(data)
    else:
        return JsonResponse({'details': "invalid request"})

1 个答案:

答案 0 :(得分:1)

以下是服务器端集成的最佳前端示例:https://developer.paypal.com/demo/checkout/#/pattern/server

此捕获示例正确处理了三种重试,显示错误和成功消息的情况。

对于您的实现,成功的案例可以是操纵DOM以显示要显示的任何消息/“模板”。

(虽然重定向是一个糟糕的设计选择,应尽可能使用actions.redirect(),但必须使用<div class="nav"> <a href="#" class="reveal-left">Left Panel</a> <a href="#" class="reveal-right">Right Panel</a> </div> <div class="panel-left"> <div class="panel-content"> <div class="close"></div> <div class="bottom"> Some content here. </div> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce bibendum, orci ut sagittis tristique, diam nisi dapibus elit, quis volutpat tortor dui interdum lacus. Proin commodo nibh arcu, sed pellentesque nunc facilisis in. Sed id dui sed dui adipiscing interdum at id lectus. Nullam auctor, sem tincidunt aliquam posuere, tellus neque tempus est, sed pulvinar mi quam et erat. Suspendisse venenatis scelerisque ultrices. Cras congue arcu quam, vitae hendrerit est aliquet ut. Pellentesque et iaculis diam, eu adipiscing mauris. Vivamus porta, nisi sed tempor ullamcorper, massa enim tincidunt metus, ut rutrum nulla tellus vitae leo. In ac elementum elit. Ut ultricies eros luctus massa feugiat, vel mattis felis sollicitudin. Proin tellus arcu, consequat vitae est quis, tempus tempus sapien. </p><p> Phasellus sed velit quis dolor tristique interdum. Nullam interdum, metus ultricies tincidunt pharetra, leo purus porttitor velit, non tincidunt mauris nibh quis ipsum. Donec eget elit tristique, porttitor tortor id, vestibulum nulla. Nam in libero nec erat pretium pharetra ut ut neque. Nunc tincidunt, augue interdum vulputate laoreet, magna eros mollis nunc, cursus laoreet nulla lorem ut nibh. Donec arcu nunc, viverra quis pellentesque a, posuere a mauris. Vestibulum sollicitudin justo in sapien elementum adipiscing. Nulla sit amet diam vel massa tristique aliquam eu sit amet metus. Cras ac nunc enim. Sed at velit sed mauris lobortis accumsan id ac nisi. Duis ut vestibulum quam. Sed quis lacinia est. </p><p> Praesent quam lorem, faucibus sit amet risus et, bibendum vestibulum nunc. Integer vestibulum nunc a magna ti</p> </div> </div> <div class="panel-right"> <div class="panel-content"> <div class="close"></div> <p>Right Panel</p> <div class="bottom"> Some content here. </div> </div> </div> <div class="content"> <h2>Side Panels Test</h2> <p>This is a prototype test to create two side panels that are controlled by CSS in terms of their animation. Click either the "Left Panel" or "Right Panel" buttons to reveal the panel. Then click on the <code>✖</code> close or use the keyboard shortcuts as seen below:</p> <ul> <li><code>ESC</code> - Close all windows</li> <li><code>L</code> - Open Right panel</li> <li><code>R</code> - Open Left panel</li> </ul> </div> 。)