zoukankan      html  css  js  c++  java
  • 支付宝当面付


    https://blog.csdn.net/rankun1/article/details/92401295

    接入流程

    • 点击在这里进入,登陆支付宝账户选择立即接入。
    • 经营内容选择百货零售-超市-超市(非平台类)
    • 营业执照可不上传
    • 店铺招牌 百度即可
    • 提交申请后十多分钟就可收到通过通知。

    开发流程

    成功接入以后,可以在蚂蚁金服开放平台网页&移动应用中,看到我的应用列表中多了一个“应用2.0签约******”的应用:
    在这里插入图片描述
    现在我们可以开发接入了,总体分为以下几个步骤(参考当面付文档当面付开发流程):

    • 配置当面付公钥私钥
      • 找到“应用2.0签约******”的应用,点击右侧查看详情
        在这里插入图片描述
      • 在应用信息中设置公钥
        在这里插入图片描述
        支付宝官方提供了密钥生成工具,很简单,使用工具生成应用公钥和私钥,应用公钥设置到支付宝,应用私钥保存到本地,应用公钥设置到支付宝后,支付宝会生成一个支付宝公钥,保存到本地。具体参见这里
    • 开发:我是使用python作为后端,使用这个开源库,下面是简单代码示例:
    from alipay import AliPay
    import time
    
    # 密钥工具生成的私钥,和支付宝公钥(我保存在了文件中)
    app_private_key_string = open("app_private_key.pem").read()
    alipay_public_key_string = open("alipay_public_key.txt").read()
    
    print(alipay_public_key_string)
    '''
    这里打印应该是这种格式(如果支付宝密钥生成工具生成的密钥没有头尾要自己加上)
    私钥格式:
    -----BEGIN RSA PRIVATE KEY-----
        base64 encoded content
    -----END RSA PRIVATE KEY-----
    
    公钥格式:
    -----BEGIN PUBLIC KEY-----
        base64 encoded content
    -----END PUBLIC KEY-----
    '''
    
    alipay = AliPay(
        appid="2019***********",   # 应用列表中“应用2.0签约******”的appid
        app_notify_url=None,    # 默认回调url
        app_private_key_string=app_private_key_string,  # 应用私钥
        alipay_public_key_string=alipay_public_key_string,  # 支付宝公钥
        sign_type="RSA2", # RSA 或者 RSA2(具体要看你的密钥是什么类型)
        debug=False  # 默认False
    )
    
    out_trade_no = "out_trade_no_123"
    # 创建订单
    result = alipay.api_alipay_trade_precreate(
        subject="test subject",  # 订单标题
        out_trade_no=out_trade_no,  # 订单号(不可重复)
        total_amount=0.1    # 订单金额,单位元
    )
    
    print(result)
    # 这里应该打印出{'code': '10000', 'msg': 'Success', 'out_trade_no': 'out_trade_no_123', 'qr_code': 'https://qr.alipay.com/bax05832mvaotxhcpjeh6074'}
    # 其中用qr_code生成二维码,支付宝扫描即可付款
    
    # check order status
    paid = False
    for i in range(30):
        # check every 3s, and 10 times in all
        print("now sleep 3s")
        time.sleep(3)
        result = alipay.api_alipay_trade_query(out_trade_no=out_trade_no)
        if result.get("trade_status", "") == "TRADE_SUCCESS":
            paid = True
            break
        print("not paid...")
    
    # order is not paid in 30s , cancel this order
    if paid is False:
        print("支付失败,取消订单")
        alipay.api_alipay_trade_cancel(out_trade_no=out_trade_no)
    else:
        print("支付成功")
    
    

    其他

    当面付相关接口

    这里查看交易数据

  • 相关阅读:
    web自动化中的三种切换---alert弹框切换
    web自动化中的三种切换--窗口切换
    web自动化中的三种切换---iframe
    web元素定位中的三种等待方法
    web自动化浏览器chrome和驱动chromedriver
    selenium安装
    pytest用例标记规则
    键盘事件
    鼠标事件
    控制浏览器
  • 原文地址:https://www.cnblogs.com/cute/p/13932371.html
Copyright © 2011-2022 走看看