起因
大家都知道我有个 Python Flask构建微信小程序订餐系统 课程。这个课程主要是讲解 小程序在线商城的。但是有很多学生小程序的账号是没有支付权限的,那么如何完成整个闭环课程的学习咧?接下来我来给大家讲解整个过程。
实现过程
原理其实很简单,就是模拟支付完成跳过支付过程。这里我用两种方案给大家实现。
如下图,由于没有支付权限 就会导致 支付回调 没有。那么我们就得做一件事情:模拟支付回调
等于就是自己做一个入口 可以调用支付回调的业务逻辑就行了 也就是C
方案一:web模拟回调
废话不说,直接上代码
''' 模拟回调方法 其实所有回调基本都是校验合法性 然后找到订单id,所以我们模拟就是直接传递 订单id 访问url(可以使用浏览器直接访问) : api/order/callback2?id=xxxx xxx 就是你想把某个订单设置为成功的订单id值 ''' @route_api.route( "/order/callback2" ) def orderCallback2(): req = request.values id = int(req['id']) if 'id' in req else 0 if not id: return "fail" target_pay = PayService() target_pay.orderSuccess(pay_order_id= id , params={ "pay_sn": "" } ) return "success"
方案二:Job 模拟回调
废话不说,直接上代码
# -*- coding: utf-8 -*- from common.libs.pay.PayService import PayService from application import app ''' job模拟回调方法 ,新建jobs/tasks/pay/callback.py 其实所有回调基本都是校验合法性 然后找到订单id,所以我们模拟就是直接传递 订单id python manager.py runjob -m pay/callback -p 1 ''' class JobTask(): def __init__(self): pass def run(self,params): id = params['param'][0] if params['param'] and len(params['param']) else 0 if not id: app.logger.info(" fail ") return target_pay = PayService() target_pay.orderSuccess(pay_order_id=id, params={"pay_sn": ""}) app.logger.info("it's over~~")