欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

支付宝支付

程序员文章站 2022-04-11 13:48:15
...

1.1 秘钥相关

  • 安装

    # 安装python-alipay-sdk
    pip install python-alipay-sdk --upgrade
    
  • 生成**文件

    openssl
    OpenSSL> genrsa -out app_private_key.pem   2048  # 私钥
    OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥
    OpenSSL> exit
    
  • 使用阿里工具生成公钥

    • https://docs.open.alipay.com/291/105971(下载支付宝生成秘钥的软件)
    • 在本地计算机生成公钥和私钥
      支付宝支付
      上传公钥
  • https://openhome.alipay.com/platform/appDaily.htm?tab=info支付宝支付

  • 上传公钥后就可以查看支付宝公钥了

  • 初始化

    from alipay import AliPay, DCAliPay, ISVAliPay
    
    app_private_key_string = open("/path/to/your/private/key.pem").read()
    alipay_public_key_string = open("/path/to/alipay/public/key.pem").read()
    
    app_private_key_string == """
        -----BEGIN RSA PRIVATE KEY-----
        base64 encoded content
        -----END RSA PRIVATE KEY-----
    """
    
    alipay_public_key_string == """
        -----BEGIN PUBLIC KEY-----
        base64 encoded content
        -----END PUBLIC KEY-----
    """
    
    alipay = AliPay(
        appid="",
        app_notify_url=None,  # 默认回调url
        app_private_key_string=app_private_key_string,
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string=alipay_public_key_string,
        sign_type="RSA" # RSA 或者 RSA2
        debug=False  # 默认False
    )
    
    dc_alipay = DCAliPay(
        appid="appid",
        app_notify_url="http://example.com/app_notify_url",
        app_private_key_string=app_private_key_string,
        app_public_key_cert_string=app_public_key_cert_string,
        alipay_public_key_cert_string=alipay_public_key_cert_string,
        alipay_root_cert_string=alipay_root_cert_string
    )
    
    # 如果您没有听说过ISV, 那么以下部分不用看了
    # app_auth_code或app_auth_token二者需要填入一个
    isv_alipay = ISVAliPay(
        appid="",
        app_notify_url=None,  # 默认回调url
        app_private_key_srting="",
        # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
        alipay_public_key_string="",
        sign_type="RSA" # RSA or RSA2
        debug=False  # False by default,
        app_auth_code=None,
        app_auth_token=None
    )
    
  • 电脑网站支付 alipay.trade.page.pay

    # 如果你是Python 2用户(考虑考虑升级到Python 3吧),请确保非ascii的字符串为utf8编码:
    subject = u"测试订单".encode("utf8")
    # 如果你是 Python 3的用户,使用默认的字符串即可
    subject = "测试订单"
    
    # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no="20161112",
        total_amount=0.01,
        subject=subject,
        return_url="https://example.com",
        notify_url="https://example.com/notify" # 可选, 不填则使用默认notify url
    )
    
相关标签: ssh python