精华内容
下载资源
问答
  • 公司项目是一个appjava做后台 app可以通过蓝牙来绑定硬件,所以需要相应的jar包 硬件更新升级,app的jar包也要跟着更新。项目部署在阿里云服务器上,我该怎么解决这个jar包更新的问题?思路是什么?我负责java...
  • Appium+Java搭建app自动化测试环境

    千次阅读 2019-12-11 18:00:28
    App+Java搭建app自动化测试环境1、安装jdk和eclipse2、配置安卓环境(SDK)3、安装Appium客户端4、导入appium类库5、编写脚本 之前研究了用seleniumweb的自动化测试,想研究下APP怎么自动化测试,于是花了两天...


    之前研究了用selenium做web的自动化测试,想研究下APP怎么做自动化测试,于是花了两天时间做了个小实验,对于搭建appium环境网上资料不是很系统,通过一点点拼接加上试错总结出了如下流程:

    1、安装jdk和eclipse

    安装jdk和eclipse是基础,不赘述

    2、配置安卓环境(SDK)

    大部分的资料都是下载adt,新版的adt很大,而且我已经有eclipse了,所以只下载了sdk
    下载地址:https://www.androiddevtools.cn/#sdk-tools
    (1)android-sdk_r24.4.1-windows.zip 解压到D:\mySoft
    (2)配置系统变量:增加ANDROID_HOME,值:D:\mySoft\android-sdk-windows
    (3)双击android-sdk-windows\SDK Manager.exe 选装工具
    安装Tools 文件夹下Android SDK Platform-tools 、Android SDK Build-tools和Android SDK Tools,Extras文件夹下的 Google USB Driver
    点击“Install 4 Packages…”—>选择Accept License—>点击 “Install” 开始安装。确定更新
    在这里插入图片描述
    (4)在系统变量Path中添加ANDROID_HOME、tools、platform-tools、build-tools目录:
    %ANDROID_HOME%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.2
    (5)在cmd窗口下输入adb验证环境变量是否配置成功
    完成后,可以使用sdk自带的定位工具,启动android-sdk-windows\tools\uiautomatorviewer.bat (需连接手机才能获取屏幕),但是该工具只能提供定位信息,无法实际运行。

    3、安装Appium-desktop(Appium 服务器的图形界面)

    Appium 服务器的图形界面封装可以下载,它适用于任何平台。它打包了 Appium 服务器运行需要的所有东西,还提供一个 Inspector 使你可以查看应用程序的层级结构,且提供录制功能,可以操作运行,比uiautomatorviewer更强大。
    下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.15.1
    (1)下载安装appium:Appium-windows-1.15.1.exe
    填写本地地址:127.0.0.1 默认端口,Start Server v1.15.1
    在这里插入图片描述
    (2)启动appium后点击start inspector sessiom配置参数,保存。
    在这里插入图片描述platformVersion: 安卓版本

    >adb shell getprop ro.build.version.release
    

    deviceName:设备名称(用真机的时候,这个参数deviceName没什么用,随便填就行了)

    >adb devices
    

    获取当前app的apkPackage 与 appActiviyt(先打开应用)

    >adb shell dumpsys window windows | findstr “Current”
    

    automationName:固定写法Appium
    platformName:固定写法Android
    若连接的手机不止一台,需要指定udid
    (3)参数配置好后,点击Start Session就能获取到手机屏幕了
    (4)点击要操作的数字,再点击Tap就可以进行点击操作了,还可以点击上面的录制按钮录制操作,生成脚本,支持多种语言
    在这里插入图片描述

    4、导入appium类库(客户端程序库)

    (1)在maven项目的pom.xml中添加依赖,maven install一下
    我问问
    如果是普通的java项目,手动添加jar包就行。

    5、编写脚本

    到此环境就搭建好啦,接下来就写脚本。
    在这里插入图片描述

    展开全文
  • 一般手机app接口后台开发,是用什么框架?...小弟不不是很明白,由于公司需要做app,请帮助谢谢!小弟不胜感激,最好有相关项目给我,小弟qq2392649104@qq.com!小弟在线等。 小弟周一就要开发拉!非常着急!
  • 大神们,我最近在做app微信支付,遇到的问题是:代码在本地运行能获取到统一下单的所有参数,但把代码放到阿里云服务器上后同一下单的预支付id为null,如何解决呢?![图片说明]...
  • java实现APP端微信支付

    千次阅读 2018-07-30 16:00:21
    最近实现了APP端微信支付的功能(下单、支付、查询订单、退款、退款查询),记录一下遇到的问题。 一、微信支付接口地址: app微信支付: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3 二、...

    最近实现了APP端微信支付的功能(下单、支付、查询订单、退款、退款查询),记录一下遇到的问题。

    一、微信支付接口地址:

    app微信支付: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3

    二、签名的坑:

    注意:1. 后台请求微信的参数都是用 “_” 分割的:

    比如:统一下单请求是后台发起的, 这个参数名在签名的时候,参数名都是 用 “_” 分割形式的。

    2. APP端请求参数的参数名是不含有 “_” 的,并且全部小写。

    比如: 调起支付的请求是在APP端向微信发起请求的,但是签名是后台根据统一下单的返回结果,在后台完成的。

    这个时候参数名称,也要全部小写,并且不带 “_”

    三、 关于支付接口回调、 退款接口的回调:

    可以暴露两个服务的接口来接收回调的数据, 

    支付结果通知 :  用于验证支付是否成功

    退款结果通知:   用于验证退款是否成功

    四、 关于申请退款:

    这个接口是需要证书的。事先在卖家商户平台下载好微信支付的证书。

      private static WXPayRequest getWXPayRequestInstance() throws Exception {
            return new WXPayRequest(new WXPayConfig() {
    
                public String getAppID() {
                    return WxCommonConstant.APP_ID;
                }
    
    
                public String getMchID() {
                    return WxCommonConstant.MCH_ID;
                }
    
    
                public String getKey() {
                    return WxCommonConstant.KEY;
                }
    
    
                public InputStream getCertStream() throws FileNotFoundException {
                    File file = new File(WxCommonConstant.APICLIENT_CERT_PATH);
                    return new FileInputStream(file);
                }
    
    
                public IWXPayDomain getWXPayDomain() {
                    return new IWXPayDomain() {
    
                        public void report(String domain, long elapsedTimeMillis, Exception ex) {
                            System.out.println("==================== report begin ===================");
                            System.out.println(domain);
                            System.out.println(elapsedTimeMillis);
                            System.out.println(ex);
                            System.out.println("==================== report end ===================");
                        }
    
                        public DomainInfo getDomain(WXPayConfig config) {
                            return new DomainInfo(WXPayConstants.DOMAIN_API, true);
                        }
                    };
                }
            });
        }
    

    在微信配置对象中, 通过返还一个包含证书的输入流,设置进去的。

    展开全文
  • java支付宝app支付代码

    千次阅读 2017-12-02 14:48:12
    刚刚接触app支付宝支付的时候还是走了很多弯路的,希望看到的小伙伴们别要走那么多弯路。 最好以支付宝(蚂蚁金服)提供的文档和API去开发,网上别人写的一些加签方式,可能并不好用。 下面这个地址为App支付请求...

    刚刚接触app支付宝支付的时候还是走了很多弯路的,希望看到的小伙伴们别要走那么多弯路。
    最好以支付宝(蚂蚁金服)提供的文档和API去开发,网上别人写的一些加签方式,可能并不好用。
    下面这个地址为App支付请求参数说明:
    https://docs.open.alipay.com/204/105465/
    还有支付宝的SDK下载地址:
    https://docs.open.alipay.com/54/103419
    把压缩包解压,之后就是这样:这里写图片描述
    打开readme.txt
    这里写图片描述
    把这两个jar包导入你们自己的项目里面,就可以直接用支付宝的加签方式了,根本就不需要你们自己写的,我就是这个走了不少弯路。
    下面就上代码了:

    public class AlipayConfig  {
    
        // 合作身份者ID,以2088开头由16位纯数字组成的字符串
        public static String partner = "2088*********4";
    
     // 6.请求网关地址
        public static String URL = "https://openapi.alipay.com/gateway.do";    
    
        public static String service = "mobile.securitypay.pay";//固定值
    
        public static String seller_id = "*******@163.com";
        //私钥
        public static String private_key = "";
        // 商户的公钥钥
        public static String public_key ="";
        // 支付宝的公钥,无需修改该值(不要删除也不要修改,在接收通知的时候需要进行签名认证)
        public static String ali_public_key= "";
    
        // 字符编码格式 目前支持 gbk 或 utf-8
        public static String input_charset = "utf-8";
        // 签名方式 不需修改
        public static String sign_type = "RSA";
    
        //APPID
        public static String APPID = "****************";    
       //支付宝回调地址 
        public static String notify_url = "";
    
        // 8.返回格式
       public static String FORMAT = "json" 

    关于支付宝的回调地址提供给你们一个可以穿透内网的工具:
    https://natapp.cn/
    通过这个网址获得一个地址,来穿透内网,测试一个支付宝支付还是可以的,具体的操作可以自行百度一下,还是比较简单的。

    
             String orderStr="";
             try {
                 Map<String, String> orderMap = new LinkedHashMap<String, String>(); // 订单实体
                    Map<String, String> bizModel = new LinkedHashMap<String, String>(); // 公共实体
                    /****** 2.商品参数封装开始 *****/ // 手机端用
                    // 商户订单号,商户网站订单系统中唯一订单号,必填
                    orderMap.put("out_trade_no", orderPayRequest.getOrderId());
                    // 订单名称,必填
                    orderMap.put("subject", "***支付");
                    // 付款金额,必填
                    orderMap.put("total_amount", String.valueOf(orderPayRequest.getActualPayMoney()));
                    // 销售产品码 必填
                    orderMap.put("product_code", "QUICK_WAP_PAY");
                    /****** --------------- 3.公共参数封装 开始 ------------------------ *****/ // 支付宝用
                    // 1.商户appid
                    bizModel.put("app_id", AlipayConfig.APPID);
                    // 2.请求网关地址
                    bizModel.put("method", AlipayConfig.URL);
                    // 3.请求格式
                    bizModel.put("format", AlipayConfig.FORMAT);
                    // 4.回调地址
                    bizModel.put("return_url", AlipayConfig.notify_url);
                    // 5.私钥
                    bizModel.put("private_key", AlipayConfig.private_key);
                    // 6.商家id
                    bizModel.put("seller_id", AlipayConfig.partner);
                    // 7.加密格式
                    bizModel.put("sign_type", AlipayConfig.sign_type + "");
                    /****** --------------- 3.公共参数封装 结束 ------------------------ *****/
                    // 实例化客户端
                    AlipayClient client = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID,
                            AlipayConfig.private_key, AlipayConfig.FORMAT, AlipayConfig.input_charset,
                            AlipayConfig.ali_public_key, AlipayConfig.sign_type);
                    // 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
                    AlipayTradeAppPayRequest ali_request = new AlipayTradeAppPayRequest();
                    // SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
                    AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
                    // model.setPassbackParams(URLEncoder.encode((String)orderMap.get("body").toString()));;
                    // //描述信息 添加附加数据
                    // model.setBody(orderMap.get("body")); //商品信息
                    model.setSubject(orderMap.get("subject")); // 商品名称
                    model.setOutTradeNo(orderMap.get("out_trade_no")); // 商户订单号(自动生成)
                    model.setTotalAmount(orderMap.get("total_amount")); // 支付金额
                    model.setProductCode(orderMap.get("product_code")); // 销售产品码
                    model.setSellerId(AlipayConfig.partner); // 商家id
                    ali_request.setBizModel(model);
                    ali_request.setNotifyUrl(AlipayConfig.notify_url); // 回调地址
                    AlipayTradeAppPayResponse responses = client.sdkExecute(ali_request);
                     orderStr = responses.getBody();
                    System.err.println(orderStr); // 就是orderString 可以直接给客户端请求,无需再做处理
            } catch (Exception e) {
                e.printStackTrace();
            }
    
             return orderStr;
    

    把得到的加了签的字符串给前端就好了,让他们直接去调用支付宝去支付,
    还有一个支付宝回调的方法,这个方法并不需要前端访问,而是支付宝回调的:
    这个方法的路径,就是支付宝的回调地址,当然了,你得让支付宝能访问你这个方法,内网测试就得用到刚刚用工具得到的地址来测试了:把这个加到刚刚得到的地址后面就好了:比如
    http://3gtdkc.natappfree.cc/“项目名字”/order-pay-notify-controller

    @RequestMapping(value = "/order-pay-notify-controller", method = {RequestMethod.POST,RequestMethod.GET })
        public void notify(@RequestBody String body, HttpServletRequest requests, HttpServletResponse httpServletResponse)
                throws IOException {
        // 1.从支付宝回调的request域中取值
            Map<String, String[]> requestParams = requests.getParameterMap();
            System.out.println("从支付宝回调的request域中取值:requestParams===================================" + requestParams);
            for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
                String name = iter.next();
                String[] values = requestParams.get(name);
                String valueStr = "";
                for (int i = 0; i < values.length; i++) {
                    valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
                }
                // 乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
                // valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
                params.put(name, valueStr);
            }
            // 2.封装必须参数
            String out_trade_no = requests.getParameter("out_trade_no"); // 商户订单号
            System.err.println("out_trade_no==================================" + out_trade_no);
            String orderType = requests.getParameter("body"); // 订单内容
            System.out.println("orderType==================================" + orderType);
            String tradeStatus = requests.getParameter("trade_status"); // 交易状态
            System.err.println("tradeStatus=================================" + tradeStatus);
            // 3.签名验证(对支付宝返回的数据验证,确定是支付宝返回的)
            boolean signVerified = false;
            try {
                // 3.1调用SDK验证签名
                signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ali_public_key, AlipayConfig.input_charset);
                System.out.println(signVerified);
            } catch (Exception e) {
                e.printStackTrace();
            }
            }
            // 4.对验签进行处理
    if (signVerified) { // 验签通过
    if (tradeStatus.equals("TRADE_SUCCESS")) {// 只处理支付成功的订单:修改交易表状态,支付成功
    
    下面的就是你们自己的业务逻辑了 :
    成功和失败以后的逻辑了

    好了,这就是支付宝app支付逻辑了,加签和验签的方法支付宝都封装好了,不需要我们自己写

    展开全文
  • java实现APP端支付宝支付

    千次阅读 2018-07-30 15:26:49
    App支付: https://docs.open.alipay.com/204/105051 二、生成公钥、秘钥的坑: 下载生成RSA密钥插件生成: https://docs.open.alipay.com/291/105971 注意有两种: 2048位的、1024位的密钥,根据设置公钥时...

    一、支付宝接口地址:

    App支付: https://docs.open.alipay.com/204/105051

    二、生成公钥、秘钥的坑:

    下载生成RSA密钥插件生成: https://docs.open.alipay.com/291/105971

    注意有两种: 2048位的、1024位的密钥,根据设置公钥时自行选择哪一种。

    三、 解决错误: 系统繁忙 请稍后再试(ALIN10146)

    出错场景: 后台发起请求,向支付宝请求下单,支付宝返回下单成功,但是APP端在发起支付时,会报这个错!

    ALIN10146-自查方案: https://openclub.alipay.com/read.php?tid=6918&fid=60

    四、官方demo的坑:

    1. 实例化请求客户端:AlipayClient对象时,签名方式要用RSA2 (官方建议), 而不要用RSA

    2.向支付宝发起请求的接口,官方文档中给出的都是调用 exexute() 方法,该方法虽然可以请求执行成功(如发起退款,退款居然成功了),但是程序运行会报错:

    com.alipay.api.AlipayApiException: sign check fail: check Sign and Data Fail!

    3. 支付成功,在支付宝回调的接口中,验证签名的方式总是返回false,求证无果:

       //  调用SDK验证签名
            boolean signVerified = AlipaySignature.rsaCheckV1(params, AliPayConfig.ALI_KEY, AliPayConfig.INPUT_CHARSET, AliPayConfig.SIGN_TYPE);

    以上2、3两个问题,出错都是公钥传递错误, 在于要正确的区分商户公钥与支付宝公钥,考虑两者,各自使用的场合。

     

    五、总结下向支付宝发起请求的思想:

    1. 实例化AlipayClient:

    注意这里需要传递的公钥, 如果调用 execute(),  这里需要支付宝公钥

                                                如果调用 sdkExecute(). 这里需要商户的公钥

      //    初始化AlipayClient
        private static AlipayClient createAlipayClient() {
            return new DefaultAlipayClient(AliPayConfig.URL, AliPayConfig.APPID,
                    AliPayConfig.PRIVATE_KEY, AliPayConfig.FORMAT, AliPayConfig.INPUT_CHARSET,
                    AliPayConfig.ALI_PUBLIC_KEY, AliPayConfig.SIGN_TYPE);
        }

    2. 实例化具体API对应的request类:

    (1)统一格式 : Alipay***Request

    (2)传递业务参数: 

     方式一:  setBizContent()   需要的是用参数封装的json串

     方式一:  setBizModel()  需要的是 与request相对应的model  -------->    Alipay***Model

    3. 发起请求:请求的三个接口

    pageExecute    PC和手机网站 有页面输出
    execute            API调用 没页面输出
    sdkExecute      APP服务端的

    APP端支付宝支付的服务,一般地, 请求下单用sdkExecute(),   其他的都用execute ()

       Alipay***Response response = client.sdkExecute(ali***Request);
    支付宝服务响应的结果, 即是, Alipay***Response 型的对象
    response.getBody():        取得响应的信息内容, 是请求参数型的, param1=value1&param2=value2&.......
    response.getTradeStatus(): 取得请求的业务状态, 判断一次交易处于的状态
    

    总结: 阿里请求过程应用了策略模式

    启发: 如果APP支付时,可选的支付方式有,支付宝,微信, 银联, 我们也可以用这种模式设计我们的后台服务!

    展开全文
  • java干货】java怎么写APP

    千次阅读 2020-07-02 21:08:46
    Java(APICloud)开发手机APP 近几年手机开发非常流行,可是ios有自己的一套语言,Android虽然可以用Java开发但是也是要需要从google下载插件,总感觉不那么方便,作为Java开发者,有没有一种使用Java语言能够...
  • Java实现APP消息推送

    千次阅读 2020-09-03 15:07:33
    批量推送、个推 全推 通知透传模板
  • java支付宝APP支付java微信支付
  • 本篇文章主要介绍了java后台接受app上传的图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家个参考。一起跟随小编过来看看吧
  • html5+java三大框架app到底该怎么定义? 它不是原生态的app,那么问题来了,这种app,在接入微信登录的时候,是怎么去接入呢? 求来几个大神一起讨论!
  • java语言搭建app后台入门

    万次阅读 多人点赞 2017-05-11 09:52:09
    java语言实现app后台开发入门最近由于后台开发人员有其他任务,导致app后台开发人手不够,因此公司让我自己学习写服务器接口。在学习java基础后,发现不知道下一步该学习什么知识点,javaweb里的知识点,相关框架太...
  • java后台对app推送消息

    2015-05-05 06:41:58
    公司现在是代驾软件的,有一个客户端app和一个司机端app,后台专门写了一个客户端提交订单的接口,客户提交代驾订单以后后台接收订单信息,然后计算最近的司机,并将订单信息通过第三方推送“个推”直接推送给这个...
  • java后端 解决app接口版本管理问题

    千次阅读 2018-12-25 11:04:55
    app迭代时需要,java后端的接口也可能会迭代。 相同的接口,传参和处理方式都会不懂,如果在代码中向下兼容不可行了,就需要写多个接口进行版本区分。当版本接口不多时,可以通过接口传参然后判断来实现,但是...
  • java实现扫二维码下载APP

    千次阅读 2015-10-16 19:07:59
    java实现扫二维码下载APP
  • 支付宝APP支付Java服务端

    千次阅读 2018-03-30 13:04:07
    支付宝APP支付Java服务端: 公司项目要求对接支付宝进行支付功能,这边做出整理方便以后使用(支付宝的支付对接还是很简单的)。1):去支付宝开放平台,-1.注册账号,2.创建应用 3.配置应用 4.开启支付APP支付 5...
  • 接下来我将对于我app之中,插件的制作一个说明和讲解吧,大家先看,有问题记得通知我哦,免得我一错再错。 第一步,查看官方插件开发实例,下载相关工具文件和进行环境的准备,跳转连接。 第二步,官方的...
  • 就是说要学java web哪些内容才能开发出接口给手机app使用。 我只学过spring ioc,spring aop,还有spring事务管理,spring 数据库访问。感觉很迷茫啊!! 当然基本的JDBC,Servlet,JSP都会的。
  • 30款APP源码打包 Java Android安卓App源码 30款打包下载 Android安卓应用市场app商店源码 Android查询工具源代码 Android带进度条简易浏览器项目源码 Android仿QQ音乐播放器APP源码 Android仿爱乐透彩票项目源码 ...
  • 现在公司要求用支付宝支付接口给app,除了支付功能还要有一个优惠券和抽奖的功能,请问大神这个的思路是什么
  • 微信支付 APP支付 Java 服务器端

    万次阅读 多人点赞 2017-01-13 11:13:23
    微信支付 APP支付 Java 服务器端 本文介绍微信支付中APP支付-java服务端。 微信APP支付文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1 编写之前请先浏览文档中的业务流程、API列表中的...
  • APP登录功能的Java服务端开发

    千次阅读 2017-06-20 17:27:39
    APP登录功能的Java服务端开发
  • 主要为大家详细介绍了App登陆java后台处理和用户权限验证,感兴趣的朋友可以参考一下
  • java后台向app推送消息

    2016-06-20 09:56:46
    java后台怎么向app推送消息呢,需要用到哪些技术 ?公司现在是美容服务预约软件,有一个客户端app和一个技师端app,后台专门写了一个客户端提交订单的接口,客户提交服务订单以后后台接收订单信息,然后向预定的...
  • pc端使用的是shiro+session+redis实现用户登录,app端应该怎么实现呢,求指教,最好有demo
  • java实现二维码扫码下载APP

    千次阅读 2015-10-16 18:55:54
    java实现二维码扫码下载APP
  • Android上app_process启动java进程

    万次阅读 热门讨论 2016-11-14 20:45:50
    Java程序是跨平台的,由JVM虚拟机执行字节码。Android应用程序开发也是Java,但是都是运行在Context环境下的。独立的Java程序能够在Android上独立...仅介绍app_process启动纯Java程序的相关知识。一、HelloWorld示例1.
  • 我想写一个app,用java语言,我因该储备哪些技能,哪些准备?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400,267
精华内容 160,106
关键字:

java怎么做app

java 订阅