美多商城之支付宝支付

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:
        # 验证失败

该花的钱要花,该吃的饭要吃。
原文地址:https://www.cnblogs.com/chao666/p/12263673.html