Java对接支付宝支付(App+H5)

App+H5支付方式(比微信简单)

1.登录支付宝开放平台,选择网页和移动应用:

2.填完app相关的信息后,点击App,设置接口加签方式:如下,选择SHA256,然后通过支付宝提供的工具生成公私钥对

3.支付能力选择这两个即可(也可以审核通过再添加):

4.完成并提交到审核,等审核通过就可以使用了。拿到Appid,公私钥信息,以下是Java的部分代码:仅供参考

App支付

//App支付    
public static String alipay(String outTradeNo,String organId, String totalAmount,String subject,String body) throws Exception{
        AliPayCommonConfig alipayConfig = new AliPayCommonConfig();
        //获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig.getGatewayUrl(), alipayConfig.getApp_id(),
        		alipayConfig.getMerchant_private_key(), "json", alipayConfig.getCharset(), alipayConfig.getAlipay_public_key(),
        		alipayConfig.getSign_type());

        //QUICK_MSECURITY_PAY
        //该笔订单允许的最晚付款时间
        String timeout= "30m";
        AlipayTradeAppPayRequest ali_request = new AlipayTradeAppPayRequest();
        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
        model.setBody(body);
        model.setSubject(subject);
        model.setOutTradeNo(outTradeNo);
        model.setTimeoutExpress(timeout);
        model.setTotalAmount(totalAmount);
        model.setProductCode(alipayConfig.getProductCode_APP());
        ali_request.setBizModel(model);
        
        ali_request.setReturnUrl(alipayConfig.getReturn_url());
        ali_request.setNotifyUrl(alipayConfig.getNotify_url());
     
        //请求
        return alipayClient.sdkExecute(ali_request).getBody();
    }

H5支付

    //支付宝H5支付
    public static String alipayH5(String outTradeNo,String organId, String totalAmount,String subject,String body) throws Exception{
    	//获得初始化的AlipayClient
        AliPayCommonConfig alipayConfig = new AliPayCommonConfig ();
    	AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig.getGatewayUrl(), alipayConfig.getApp_id(),
                alipayConfig.getMerchant_private_key(), "json", alipayConfig.getCharset(), alipayConfig.getAlipay_public_key(),
                alipayConfig.getSign_type());
    	
    	//该笔订单允许的最晚付款时间
    	String timeout= "30m";
    	//设置请求参数
    	String content = "{\"out_trade_no\":\""+ outTradeNo +"\"," 
    			+ "\"total_amount\":\""+ totalAmount +"\"," 
    			+ "\"subject\":\""+ subject +"\"," 
    			+ "\"timeout_express\":\""+ timeout +"\"," 
    			+ "\"body\":\""+ body +"\"," 
    			+ "\"product_code\":\""+alipayConfig.getProductCode()+"\"}";
    	AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
    	alipayRequest.setReturnUrl(alipayConfig.getReturn_url());
    	alipayRequest.setNotifyUrl(alipayConfig.getNotify_url());
    	alipayRequest.setBizContent(content);                                                                                                                                                               
    	
    	//请求
    	return alipayClient.pageExecute(alipayRequest).getBody();
    }

5.配置部分:

//配置部分
public class AliPayCommonConfig {

  // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
	public static String app_id = "";//appid 一般16位数字

  // 商户私钥,您的PKCS8格式RSA2私钥
  public static String merchant_private_key = "";

  // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
  public static String alipay_public_key = "";

  // 服务器异步通知页面路径  需http://AlipayConfig,不能加?id=123这类自定义参数,必须外网可以正常访问 post
  public static String notify_url = "";

  // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,沙箱环境下可以填写本地地址 get
  public static String return_url = "";

  // 签名方式
  public static String sign_type = "RSA2";

  // 字符编码格式
  public static String charset = "utf-8";

  // 支付宝网关
  public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";

  public static String productCode ="QUICK_WAP_WAY";//H5
  public static String productCode_APP ="QUICK_MSECURITY_PAY";//App
}

6.工具使用:

https://opendocs.alipay.com/open/291/106130

猜你喜欢

转载自blog.csdn.net/xingsfdz/article/details/115007764