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
}