Android支付宝支付和微信支付

支付宝请求参数拼接
private String getOrderAli() {
        Gson gson = new Gson();
        String content = gson.toJson(new Info());
        String[] keys = {"app_id", "biz_content", "charset", "format", "method", "notify_url", "sign_type", "timestamp", "version"};
        String[] values = {"201888888888", content, "utf-8", "json", "alipay.trade.app.pay", "回调地址", "RSA2", "2018-02-06 17:00:31", "1.0"};
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < keys.length; i++) {
            sb.append(keys[i]);
            sb.append("=");
            sb.append(values[i]);
            if (i != keys.length - 1) {
                sb.append("&");
            }
        }
        String result = sb.toString();
        String sign = SignUtils.sign(result, "private", true);
        sb = new StringBuffer();
        for (int i = 0; i < keys.length; i++) {
            sb.append(keys[i]);
            sb.append("=");
            sb.append(encodeData(values[i]));
            sb.append("&");
        }
        sb.append("sign");
        sb.append("=");
        sb.append(encodeData(sign));
        return sb.toString();
    }

    private String encodeData(String value) {
        try {
            return URLEncoder.encode(value, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }

    class Info {
        /**
         * timeout_express : 30m
         * product_code : QUICK_MSECURITY_PAY
         * total_amount : 0.01
         * subject : 1
         * body : 我是测试数据
         * out_trade_no : IQJZSRC1YMQB5HU
         */
        private String timeout_express = "60m";
        private String product_code = "QUICK_MSECURITY_PAY";
        private String total_amount = "1.00";
        private String subject = "AndroidWH客户端支付";
        private String body = "Android手机一台";
        private String out_trade_no = "wh15515806568";
    }

你可能感兴趣的:(Android支付宝支付和微信支付)