问题解决: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)生成地方访问,页面提示,支付存在钓鱼风险

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将React应用程序接入支付宝沙箱,您需要完成以下步骤: 1. 首先,按照支付宝提供的文档完成支付宝的申请。您可以参考支付宝官方文档:https://opendocs.alipay.com/support/01razc。 2. 在您的React Native项目的`android/app/build.gradle`文件中添加以下代码: ```groovy dependencies { // 其他依赖项... compile fileTree(dir: "libs", include: ["*.aar"]) compile files('libs/alipaysdk-15.8.06.211122170115.aar') } ``` 3. 创建一个名为`ZhifubaoPackage`的类,该类实现了`ReactPackage`接口,***```java import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ZhifubaoPackage implements ReactPackage { @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules = new ArrayList<>(); modules.add(new AlipayModule(reactContext)); return modules; } } ``` 4. 在您的React Native应用的主`MainApplication.java`文件中注册`ZhifubaoPackage`。您可以在`getPackages()`方法中添加以下代码: ```java @Override protected List<ReactPackage> getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List<ReactPackage> packages = new PackageList(this).getPackages(); packages.add(new ZhifubaoPackage()); // 添加这一行 return packages; } ``` 5. 接下来,您需要创建一个名为`AlipayModule`的模块类,该类继承自`ReactContextBaseJavaModule`。您可以在这个模块类中实现与支付宝相关的功能。根据您的需求,您可以添加支付、查询订单等相关方法。 完成以上步骤后,您的React Native应用就已成功接入支付宝沙箱。请根据您的具体需求进一步实现相关功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值