java实现APP端微信支付

最近实现了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);
                    }
                };
            }
        });
    }

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值