微信支付成功后如何实现页面跳转?
微信支付后如何实现页面跳转
当用户使用 python+django 实现微信支付并成功扫码付款后,微信服务器会向后台发送 xml 数据,通知支付结果。此时开发者需要给微信返回一个应答,同时也要实现页面跳转,以便让用户知晓支付情况。本文将介绍如何通过 websocket 实现页面跳转。
在收到微信发来的数据后,开发者需要及时给微信进行回应,表示已收到消息。在回应中间,可以通过调用 websocket 的 send() 方法,把订单号和需要发送给前端的消息传递进去。前端 js 就可以收到消息,做出相应的页面跳转。
具体实现步骤如下:
创建一个空字典,用于保存所有接入的用户地址
clients = {}
定义一个 websocket 处理函数
@accept_websocket def websocketlink(request, out_trade_no): '连接websocket' # 获取连接 if request.is_websocket: lock = threading.rlock() # rlock线程锁 try: lock.acquire() # 抢占资源 # 将客户端地址添加到字典中 clients[out_trade_no] = request.websocket # 监听接收客户端发送的消息 或者 客户端断开连接 for message in request.websocket: if not message: break else: request.websocket.send(message) finally: # 释放锁 lock.release()
定义一个服务端发送消息函数
def send(out_trade_no, msg): try: if clients[out_trade_no]: clients[out_trade_no].send(msg.encode('utf-8')) # 支付结果发送给前端页面后,该连接使命就完成了 del clients[out_trade_no] except BaseException: print('发送消息出错了...')
以上就是微信支付成功后如何实现页面跳转?的详细内容,更多请关注其它相关文章!