Android支付宝模块的ali64错误解决

霸道的 AliPaladin64.sys 不知道说社么好,所以什么都不多说。前两天需要做个安卓的测试,就下载了一个模拟器,需要关掉 Windows 的(以下简称 MI)入驻一个驱动。MI 是 Core Isolation 下一个设置,大家可以在设置里面搜索 Core Isolation 查看。关于 Core Isolation 看,就是安全相关的一个设置,还是开起来比较好。当时想赶紧看下测试内容,随意下载了一个模拟器。我想的是,测完了卸载这个模拟器,再打开 MI 就好了。所以我就关掉了 MI,然后重启了电脑。... 阅读详情

最近在做一个支付模块,支付宝账户手续复杂但审核快,微信支付手续较少但审核慢,但都需要花钱。


android 客户端的处理并不复杂,只是将商品的名称 描述 价格  等一些其他的一些属性上传本地服务器,由服务器为商品签名加密再返回到本地,此时数据经过特殊处理,再将数据上传给马云爸爸就ok了。


项目让我恼火的是总是出ali64错误,其实这主要是公私钥不匹配,个人建议这么排查这个错误:


1.先用支付宝公私钥生成工具再生成一遍公私钥,替换掉开发平台的以及服务器的钥匙

2.如果还是触发ali64错误,检查一遍商品信息里的格式:(最好是客户端上传商品信息,别把官方demo里的那个生成orderinfo的放在客户端里,把他放在服务器里做),这里再出问题应该都是服务器那边的差错,因为客户端只是起到一个网络请求数据的作用。



package utils;

import android.app.Activity;
import android.content.Context;

import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;

import com.alipay.sdk.app.PayTask;
import com.google.gson.Gson;

import org.xutils.common.Callback;
import org.xutils.http.HttpMethod;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.io.UnsupportedEncodingException;
import java.lang.ref.WeakReference;
import java.net.URLEncoder;

import Contacts.Contacts;
import jsonbean.AlipayBean;
import jsonbean.AlipayOrderBean;

/**
 * Created by hcy on 2016/7/11.
 * func:支付宝支付工具类
 */
public class AliPayUtils {
    //商户id
    private static final String PARTNER = Contacts.ALPAY_PARENT;
    //商户收款账号
    private static final String SELLER = Contacts.ALIPAY_SELLER;
    private AlipayOrderBean order;//订单信息类
    private Context context;
    private Activity activity;
    private MyHandler mHandler;
    private Handler callBackHandler;


    public AliPayUtils(AlipayOrderBean order, Context context, Activity activity, Handler callBackHandler) {
        this.order = order;
        this.context = context;
        this.activity = activity;
        this.callBackHandler = callBackHandler;
        mHandler = new MyHandler(activity);

    }


    /*
        支付宝 核心支付功能
     */
    public void pay() {
        RequestParams requestParams = new RequestParams(Contacts.ALIPAY_SERVER);
        requestParams.addBodyParameter("token", Contacts.USER_TOKEN);
        requestParams.addBodyParameter("partner", PARTNER);
        requestParams.addBodyParameter("seller_id", SELLER);
        requestParams.addBodyParameter("subject", order.getSubject());
        requestParams.addBodyParameter("body", order.getSubject());
        requestParams.addBodyParameter("total_fee", "0.01");
        requestParams.addBodyParameter("user_id", order.getApp_userid());
        requestParams.addBodyParameter("app", order.getPay_app());
        requestParams.addBodyParameter("pay_type", order.getPay_type());
        requestParams.addBodyParameter("buy_type", order.getBuy_type());
        requestParams.addBodyParameter("counter_fee",order.getCounter_fee());
        requestParams.addBodyParameter("count", order.getCount());
        requestParams.addBodyParameter("pay_mode", order.getPay_mode());
        requestParams.addBodyParameter("pay_dev", order.getPay_dev());
        requestParams.addBodyParameter("channel_business", order.getChannel_business());
        requestParams.addBodyParameter("app_unit",order.getApp_unit());
        requestParams.addBodyParameter("app_course",order.getApp_course());
        requestParams.addBodyParameter("pay_start_time",order.getPay_start_time());
        requestParams.addBodyParameter("pay_end_time",order.getPay_end_time());

        x.http().request(HttpMethod.POST, requestParams, new Callback.CommonCallback<String>() {
            @Override
            public void onSuccess(String result) {
                if (result != null) {
                    Log.i("马云请求服务器结果:::onSuccess", "" + result);
                    Message msg = Message.obtain();
                    msg.what = 1;
                    msg.obj = result;
                    mHandler.sendMessage(msg);
                }
            }
            @Override
            public void onError(Throwable ex, boolean isOnCallback) {
                Toast.makeText(activity, "网络错误", Toast.LENGTH_SHORT).show();
                Log.i("马云请求服务器结果:::onError", "" + ex.getMessage() + " " + ex.getCause()+" "+ex.getLocalizedMessage()+" "+ex.getStackTrace().toString());
            }

            @Override
            public void onCancelled(CancelledException cex) {
                Toast.makeText(activity, "网络错误", Toast.LENGTH_SHORT).show();
                Log.i("马云请求服务器结果:::onCancelled", "" + cex.getMessage() + " " + cex.getMessage());
            }

            @Override
            public void onFinished() {

            }
        });
    }


    /**
     * 处理服务器签名返回后的订单片段
     */

    private class MyHandler extends Handler {
        private WeakReference<Activity> weakReference;

        public MyHandler(Activity activity) {
            weakReference = new WeakReference<Activity>(activity);
        }

        @Override
        public void handleMessage(Message msg) {
            final Activity activity = weakReference.get();

            if (activity != null) {
                switch (msg.what) {
                    case 1:
                        // 返回订单信息成功
                        String signJson = (String) msg.obj;

                        if (!signJson.equals("{\"Info\":{\"Msg\":\"\\u652f\\u4ed8\\u7b7e\\u540d\\u9a8c\\u8bc1\\u9519\\u8bef!\\u4e0d\\u901a\\u8fc7\",\"Code\":20000}}")) {

                            Gson gson = new Gson();


                            AlipayBean alipayBean = gson.fromJson(signJson, AlipayBean.class);


                            try {
                                String sign = URLEncoder.encode(alipayBean.getSign(), "UTF-8");//必须加
                                /**
                                 * 完整的符合支付宝参数规范的订单信息
                                 */

                                String str = alipayBean.getStr();
                                Log.i("马云接收服务器结果<<<", "" + str);
                                String payInfo = str + "&sign=\"" + sign + "\"&" + getSignType();
                                Log.i("马云处理到完整的订单信息", "" + payInfo);

                                new MyAlipayAsyncTask(activity).execute(payInfo);
                            } catch (UnsupportedEncodingException e) {
                                e.printStackTrace();
                            }

                        }


                        break;
                }

            }
            super.handleMessage(msg);

        }
    }


    private class MyAlipayAsyncTask extends AsyncTask<String, Void, String> {


        private Activity activity;


        public MyAlipayAsyncTask(Activity activity) {
            this.activity = activity;
        }

        @Override
        protected String doInBackground(String... params) {
            // 构造PayTask 对象
            PayTask alipay = new PayTask(activity);
            // 调用支付接口,获取支付结果
            String result = alipay.pay(params[0], true);
            return result;

        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

            if (s != null) {
                PayResult payResult = new PayResult(s);
                Log.i("马云处理付款结果:::", "" + payResult);
                String resultInfo = payResult.getResult();// 同步返回需要验证的信息
                Log.i("马云处理付款结果:::2", "" + resultInfo);
                String resultStatus = payResult.getResultStatus();

                String result = payResult.getResult();//订单数据信息
                Log.i("YYYTTSSSSS::", result);

                // 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
                if (TextUtils.equals(resultStatus, "9000")) {
                    Toast.makeText(context, "支付成功", Toast.LENGTH_SHORT).show();
                    Message msg = Message.obtain();
                    msg.what = 9001;
                    msg.obj = result;
                    callBackHandler.sendMessage(msg);
                } else {
                    // 判断resultStatus 为非"9000"则代表可能支付失败
                    // "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
                    if (TextUtils.equals(resultStatus, "8000")) {
                        Toast.makeText(context, "支付结果确认中", Toast.LENGTH_SHORT).show();

                        Message msg = Message.obtain();
                        msg.what = 9002;
                        // msg.obj=result;
                        callBackHandler.sendMessage(msg);

                    } else {
                        // 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误

                        Message msg = Message.obtain();
                        msg.what = 9003;
                        //   msg.obj=result;
                        callBackHandler.sendMessage(msg);

                    }
                }


            }
        }
    }


    /**
     * get the sign type we use. 获取签名方式
     */
    private String getSignType() {
        return "sign_type=\"RSA\"";
    }


    public class PayResult {
        private String resultStatus;
        private String result;
        private String memo;

        public PayResult(String rawResult) {

            if (TextUtils.isEmpty(rawResult))
                return;

            String[] resultParams = rawResult.split(";");
            for (String resultParam : resultParams) {
                if (resultParam.startsWith("resultStatus")) {
                    resultStatus = gatValue(resultParam, "resultStatus");
                }
                if (resultParam.startsWith("result")) {
                    result = gatValue(resultParam, "result");
                }
                if (resultParam.startsWith("memo")) {
                    memo = gatValue(resultParam, "memo");
                }
            }
        }

        @Override
        public String toString() {
            return "resultStatus={" + resultStatus + "};memo={" + memo
                    + "};result={" + result + "}";
        }

        private String gatValue(String content, String key) {
            String prefix = key + "={";
            return content.substring(content.indexOf(prefix) + prefix.length(),
                    content.lastIndexOf("}"));
        }

        /**
         * @return the resultStatus
         */
        public String getResultStatus() {
            return resultStatus;
        }

        /**
         * @return the memo
         */
        public String getMemo() {
            return memo;
        }

        /**
         * @return the result
         */
        public String getResult() {
            return result;
        }
    }
}




支付宝集成出现“系统繁忙,请稍后重试(ALI64)”错误的解决办法 立即下载

相关推荐

步进电机选型避雷手册:为什么你的42HS电机总丢步?从相数、电流到散热全面拆解

本文深入剖析了42HS步进电机在高速或重载下易出现丢步问题的根本原因。文章指出,选型时不应仅关注静态保持转矩,而需重点分析动态矩频曲线、合理匹配驱动器电流与细分数、进行准确的机械传动惯量计算,并有效管理系统共振与散热。通过全面拆解这些关键因素,为工程师提供了实用的选型避雷指南与系统优化方案。

weixin_29275257的博客 97

Android支付宝集成流程及其常见错误

Android支付宝集成流程及其常见错误和错误的解决方法

葫芦娃 2952

基于大模型的重度膝关节骨关节炎全流程预测与治疗方案研究

本研究基于大模型构建了重度膝关节骨关节炎(KOA)预测体系,涵盖术前风险预测、手术方案优化、术中监测和术后康复指导全流程。通过分析临床和影像数据,模型在手术风险预测准确率(85%)、并发症预警(血栓预测准确率88%)等方面显著优于传统方法。研究实现了临床数据与AI技术的深度融合,术前预测指导麻醉选择(如高危患者推荐椎管内麻醉),术中实时监测生命体征,术后个性化康复方案使患者HSS评分平均提升45分。

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1389

接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误【转】

接入第三方平台的时候,有时虽然按照文档来做,但是总是还会有各种各样的问题。 上次在接入支付宝的时候就碰到了交易订单处理失败,请稍后再试(ALI64)这样的错误,后来经过排查和总结,一般来讲这种问题都是公钥和私钥没有正确配置造成的。支付宝这边为了保证数据在传输时不被篡改,使用了rsa这种非对称的加密方式。大概的流程如下: 支付宝交互数据流程 理解这种流程后,我们就需要上传给支付宝我们的...

weixin_30258027的博客 1424

Tessent_StdcellLib

第二种为 Tessent Cell lib,既可用于功能仿真,也可以用于测试逻辑插入。lib包含了用于仿真的功能信息,也包含DFT cell属性。如何使用tessent工具将stdcell verilog 仿真模型转换为tessent自己的lib。运行后工具会生成一个atpg的lib文件,打开文件,找到一个带SI的DFF,只有功能描述。tessnt lib分为两种,第一种为ATBG lib,可以用于仿真;打开生成的lib文件,多了dft_cell_selection。第二部:编写attributes文件。

qq_40411444的博客 2134

基于YOLOv5与海康工业相机的高分辨率实时检测实践

本文详细介绍了基于YOLOv5与海康工业相机的高分辨率实时检测实践,通过优化相机配置、网络传输和YOLOv5模型适配,实现了每秒15帧以上的实时检测性能,缺陷识别准确率高达99.2%。特别适用于电子元件焊接点检测、精密齿轮齿痕检查等对微小缺陷敏感的场景。

weixin_30872499的博客 474

系统繁忙 请稍后再试(ALI64)”

 移动快捷支付,往往需要集成支付宝的sdk,集成的过程相对简单,只要按照支付宝的文档,进行操作一般不会出问题。            下面主要说明一下,集成sdk后报“系统繁忙 请稍后再试(ALI64)”错误时的处理办法: 1、排查账号配置,配置的账号是否有对应接口权限; 2、排查公钥和私钥生成是否正确,一般有可能是生成的公私钥不匹配,造成的问题。每次生成公私钥之后,进行校验,

u010129251的专栏 3600

稳压电源的隐形战场:动态特性如何影响你的嵌入式系统稳定性

本文深入探讨了稳压电源动态特性对嵌入式系统稳定性的关键影响,分析了HT7533和AMS1117等稳压芯片在输入阶跃响应和负载瞬态响应方面的性能差异。通过实测案例展示了不同场景下的动态特性表现,并提供了针对工业控制、IoT设备和射频系统的选型指南与优化策略,帮助工程师解决电源相关的隐蔽故障。

weixin_29204205的博客 609

彻底清除Alipaladin64.sys 无需安装其他软件或命令行操作

彻底清除Alipaladin64.sys,无需安装其他软件或命令行操作! Alipaladin64.sys导致无法开启内存完整性,卸载了优酷、钉钉,无效!

hfk_lulu的博客 4万+

整理的15个公开且可直接使用的电力视觉输电线路领域数据集

而巡检数据是目前来说影响我们做科研的最大阻碍,为此本内容主要总结了,现有的且公开免费的巡检数据集,供大家使用。STN PLAD数据集133个航拍图像,五个电力部件:电力塔及其塔的ID、绝缘子,防震锤,联板(yoke),图像的尺寸在5472×3648到5472×3078。IDID数据集:2000张图像,包含三个类别,正常绝缘子,破损绝缘子和闪络绝缘子三个类别,用于目标检测的实验。TTPLA数据集,用于实例分割,1100张尺寸为3840×2160,包含两个类别,电力杆塔和电力线。主要用于电力杆塔的目标检测。

weixin_42048361的博客 5011

【暂时完结】Prescan学习笔记

Prescan学习记录1. Prescan基础知识1.1 Conventions·坐标1.2 Road segment·道路片段1.2.1 让一个路段连接其他两个路段1.2.2 配置车道线1.2.3 Road marking·道路标志1.3 Trajectory·轨迹1.3.1 建立一个Path·路径1.3.2 配置Speedprofile1.3.3 Synchronization of Trajectories·轨迹同步1.3.4 Multiple trajectories · 多轨迹分配 1. Pres

dreautumn的博客 1万+

Android 支付宝快捷支付集成及ALI64错误的有效解决

支付宝开放平台采用了RSA安全签名机制,开发者可以通过支付宝公钥验证消息来源,同时可使用自己的私钥对信息进行加密。RSA算法及数字签名机制是支付宝开放平台与开发者网关安全通信的基础,若开发者不熟悉RSA及数字签名,请先查阅相关资料。 1、RSA私钥及公钥生成 官方提供的开发文档存在一些误导,这里简要概括为这几句话: RSA密钥生成命令 生成RSA私钥 openssl>genrsa -out

Veer Han 1万+

电商行业分析爬虫:抓取行业数据,进行行业分析

电商行业数据分析对于市场研究、竞争分析和商业决策至关重要。通过爬取电商平台的数据,我们可以深入了解市场动态、消费者行为和商品销售情况。本文将介绍如何构建一个电商行业分析爬虫,抓取商品信息、销售数据和用户评价等,并进行数据分析。

u014481728的博客 1627

android 支付宝 40247,iOS——集成支付宝 系统繁忙,请稍后再试ALI40247

问题描述:在调用支付宝时,老是显示,系统繁忙,请稍后再试ALI40247。解决方案:一.如何签约APP支付接口第一步:进入管理中心:https://openhome.alipay.com/platform/appManage.htm第二步:选择或者创建一个应用,再选择功能信息-》申请功能-》勾选APP支付-》确定添加。第三步:点击上方查看如何使用进入到签约管理。点击立即签约,签约完成即可获得接口权...

weixin_31306591的博客 799

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

支付宝sdk集成,报系统繁忙 请稍后再试(ALI64)

移动快捷支付,往往需要集成支付宝的sdk,集成的过程相对简单,只要按照支付宝的文档,进行操作一般不会出问题。            下面主要说明一下,集成sdk后报“系统繁忙 请稍后再试(ALI64)”错误时的处理办法: 1、排查账号配置,配置的账号是否有对应接口权限; 2、排查公钥和私钥生成是否正确,一般有可能是生成的公私钥不匹配,造成的问题。每次生成公私钥之后,进

happyrabbit456的专栏 9233

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 支付宝集成错误,Android 支付宝快捷支付集成及ALI64错误的有效解决

支付宝开放平台採用了RSA安全签名机制,开发人员能够通过支付宝公钥验证消息来源。同一时候可使用自己的私钥对信息进行加密。RSA算法及数字签名机制是支付宝开放平台与开发人员网关安全通信的基础。若开发人员不熟悉RSA及数字签名。请先查阅相关文档。1、RSA私钥及公钥生成官方提供的开发文档存在一些误导,这里简要概括为这几句话:RSA密钥生成命令生成RSA私钥openssl>genrsa -out ...

weixin_30563851的博客 291

Android调用支付宝快捷支付时提示"系统繁忙,请稍后再试(ALI64)"错误

网上给的答案一般都说是公钥配置错误导致的,但是上传了几次还是提示同样的错误。 但是如果故意使用不匹配的私钥,提示的是参数错误,说明公钥很可能没有配置错。 最后发现是由于传参数的时候设置了return_url="",如果不传return_url或者将return_url设置为合法的url,比如"http://m.alipay.com"  就没有提示""系统繁

happyrabbit456的专栏 1万+

从概念到实现:打造宇宙级萌系数字角色的全流程技术解析

数字角色创作是游戏开发和动画制作的核心环节,它涉及将抽象概念转化为具有情感与视觉吸引力的虚拟实体。其技术原理涵盖从概念设计、三维建模、材质着色到骨骼动画与行为逻辑的完整管线。在实时渲染领域,通用渲染管线(URP)和Shader Graph等技术为角色视觉风格的实现提供了强大支持,而粒子系统与后期处理则能有效增强角色的表现力与氛围感。这些技术的价值在于,它们使开发者能够跨越艺术与工程的界限,创造出既符合项目性能要求,又能深度触动用户情感的数字生命。在游戏、虚拟偶像、交互艺术等应用场景中,一个成功的角色往往是技

aodiyi6351的博客 370

Android 支付宝开发错误总结

1、4.0以上机型出现Java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag 原因:android4.0以上版本问题 解决办法:在SignUtils中将KeyFactory k

superyu1992的专栏 1万+

Android 支付宝开发遇到的一些问题

首先,下载支付宝 SDK 并解压三个文件。(参考支付宝SDK官方文档,还是有用的)其实主要的是四个字符串:PANTNER(商PID) 签约成功可见 SELLER (收款账号) RSA—PRIVATE(商户私钥) RSA—PUBLIC(支付宝公钥)在密钥管理页面获取包含5个JAVA文件Base64,PayResult,SignUtils,ExternalFragment(主要是布局),PayDe

StruggleOldBoy的博客 753

安卓支付宝的集成原理

支付宝支付过程,详细总结;      首先我先说一下,使用支付宝的时候会出现哪些bug:        1、4.0以上机型出现Java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong

WJ2LIU的博客 1337

Android 接入支付宝

这里忽略申请支付账户方面的问题。 1 下载支付宝 SDK   https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1 2 建立应用 3 生成公钥 和 私钥   这是生成的链接 https://doc.open.alipay.com/doc2/detail?treeId=58&a

spyrx7的专栏 466

android集成最新支付宝遇到的坑

android集成支付宝支付 整体思路 第一步:根据最新的支付宝文档,

北京流年 2951

支付 x86_64

<转>支付宝sdk集成,报系统繁忙 请稍后再试(ALI64) 移动快捷支付,往往需要集成支付宝的sdk,集成的过程相对简单,只要按照支付宝的文档,进行操作一般不会出问题。 下面主要说明一下,集成sdk后报“系统繁忙 请稍后再试(ALI64)”错误时的处理办法: 1、排查账号配置,配置的账号是否有对应接口...

weixin_30924239的博客 193
上一篇: Android基于surfaceview与mediaplayer的视频播放器(android-studio)
下一篇: Android-Studio 用ShareSDK集成社会化分享,短信验证码,视频录制功能
泡温泉的咸鱼
博客等级 码龄11年 39粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值