问题解决:python接入支付宝沙箱问题处理

闲暇想对接个支付宝玩玩,没想到各种运行不起来,浪费半天功夫,记录下,方便后续遇到同样的坑来处理

 开发者平台建应用、开账号、公私钥这些不写了,官网网上一大堆,只写问题处理。

1. 使用开放文档中的sdk,以及demo,pip install alipay-sdk-python,安装完后,直接复制下来示例,改了appid、公私钥,运行一直报INVALID_PARAMETER(无效参数),无奈,各种搜、发帖提问题,都没法处理,只能放弃

2. 使用了网上大多数用的三方包,pip install python-alipay-sdk,安装前先卸载掉上面1中安装的包pip uninstall alipay-sdk-python,下载缓慢可换pip源


# 代码使用
from alipay import AliPay

app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----
你的应用私钥
-----END RSA PRIVATE KEY-----
"""
alipay_public_key_string = """-----BEGIN PUBLIC KEY-----
支付宝公钥
-----END PUBLIC KEY-----
"""
alipay = AliPay(
    appid="你的沙箱应用id",
    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,不写默认是RSA2
    debug=True,  # 默认 False
)
# 电脑网站支付,需要跳转到:https://openapi.alipay.com/gateway.do? + order_string
res=alipay.api_alipay_trade_page_pay(
    out_trade_no='1000102',
    total_amount=float(999),  # 只有生成支付宝链接时,不能用Decimal
    subject='充气球',
    return_url='http://127.0.0.1:8000',
    notify_url='http://127.0.0.1:8000',
)

gataway = 'https://openapi.alipaydev.com/gateway.do?'
print(gataway+res)  # 即支付链接地址

3. 注意点

(1)RSA key format is not supported

解决:私钥、公钥开头结尾如上加,一定不要有换行、空格

(2)module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

解决:两者其一就行,看哪个能解决问题,或者都执行

          1)将cryptography降到2.8版本或以下,小于38
           2)将pyOpenSSL从19.0.0升级到22.0.0

(3)生成地方访问,页面提示,支付存在钓鱼风险

解决:把沙箱环境页面关了,在其他浏览器打开,都可以

你可能感兴趣的:(问题解决,java,开发语言)