支付宝-APP支付

  • 配置文件和异步回调不需要改变,请参考:https://my.oschina.net/xpx/blog/1863944
  • 补充下app支付接口:
     @PostMapping(value = "/aliPay" , produces = "application/json;charset=UTF-8")
        public R aliPay(@RequestBody PayParam payParam){
            // 用订单号查询订单相关信息
            PayOrder payOrder =  iPayOrderService.selectByPayNo(payParam.getOutTradeNo());
            if(null == payOrder){
                return R.error("订单信息有误");
            }
            //实例化客户端
            AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.GATEWAYURL,AlipayConfig.APP_ID,AlipayConfig.MERCHANT_PRIVATE_KEY,AlipayConfig.FORMART,AlipayConfig.CHARSET,AlipayConfig.ALIPAY_PUBLIC_KEY,AlipayConfig.SIGN_TYPE);
            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称,alipay.trade.app.pay
            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
            //SDK已经封装掉了公共参数,这里只需要传入业务参数,
            //以下方法为SDK的model入参方式(model和biz_content同时存在的情况下取biz_content).
            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
            //商品描述
            model.setBody(AlipayConfig.BODY);
            //订单主题
            model.setSubject(AlipayConfig.SUBJECT + payOrder.getUserNumber());
            //订单号
            model.setOutTradeNo(payOrder.getPayNumber());
            //设置订单超时
            model.setTimeoutExpress(AlipayConfig.TIME_OUT_EXPRESS);
            //设置付款金额
            model.setTotalAmount(payOrder.getPayAmount().toString());
            model.setProductCode(AlipayConfig.PRODUCT_CODE);
            request.setBizModel(model);
            request.setNotifyUrl(AlipayConfig.NOTIFY_URL);
            R r = R.ok();
            try{
                AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
                r.put("data",response.getBody());
                return r;
            }catch (AlipayApiException e){
                log.error("调用阿里支付失败{}",e.getMessage());
                return R.error("调用阿里支付失败");
            }
        }
  • 说下私钥和公钥的生成
    • 进入https://openhome.alipay.com/platform/keyManage.htm,设置公钥
    • 下载公钥自动生成地址https://os.alipayobjects.com/download/secret_key_tools_RSA256_win.zip
    • 下载后解压有说明使用,运行:支付宝RAS密钥生成器SHAwithRSA2048_V1.0.bat 即可
    • 用文本编辑器打开复制中间部分上传
    • 下载校验公钥地址:https://os.alipayobjects.com/download/sign_tools_RSA256_win.zip
    • 解压后运行:支付宝报文签名生成器SHA256withRSA2048_V1.0.bat
    • 将之前生成的私钥文件rsa_private_key_pkcs8.pem用文本编辑器打开,复制到左边,然后生成右边的数据复制到网页的验证公钥中
    • 如果提示匹配成功则完成
    • 将私钥信息复制到代码支付信息中:http://www.5ixuexiwang.com/str/compress.php,这个网址可以去除空格换行
    • 上传成功后会生成支付宝公钥,复制里面的公钥到代码中即可
  • 搞定

转载于:https://my.oschina.net/xpx/blog/2996612

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值