美多商城之支付宝支付
1. 支付宝准备
1.1 沙箱应用(包含测试账号)
1.2 密钥(应用公私钥和支付宝公钥)
1.3 支付宝SDK
2. 订单支付功能
2.1 核心思想:
对接支付宝,向支付宝索取扫码登录页面,方便用户使用自己的支付宝登录到支付宝服务器
2.2 实现方式:
# 查询要支付的订单
order = OrderInfo.objects.get(order_id=order_id, user=user, status=OrderInfo.ORDER_STATUS_ENUM['UNPAID'])
# 创建支付宝支付对象
alipay = AliPay()
# 获取登录支付宝链接
order_string = alipay.api_alipay_trade_page_pay()
# 响应登录支付宝链接
alipay_url = settings.ALIPAY_URL + "?" + order_string
3. 保存订单支付结果
3.1 核心思想:
支付结束后,处理支付宝同步的回调请求,并验证该回调是否是支付宝发送的回调请求
如果是,将美多商城维护的订单编号和支付宝维护的订单编号绑定到一起,并修改订单状态
3.2 实现方式:
# 获取前端传入的请求参数
query_dict = request.GET
data = query_dict.dict()
# 获取并从请求参数中剔除signature
signature = data.pop('sign')
# 创建支付宝支付对象
alipay = AliPay()
# 校验这个重定向是否是alipay重定向过来的
success = alipay.verify(data, signature)
if success:
# 验证通过
else:
# 验证失败