您的位置:首页 > 移动开发

支付宝app支付后端(java)

2018-01-05 14:23 423 查看
支付宝其实还是比较良心的。下载他们的sdk分分钟完成支付功能。

一个类搞定。

   AliPay.java
//Map<String,Object> map 是前端传来的参数。解析出来然后放到AlipayTradeAppPayModel里然后在把model对象給request去请求支付宝
public String Pay(Map<String,Object> map) throws UnsupportedEncodingException{
String orderString = null;
//实例化客户端 AlipayClient这个类直接导入jar就可以用。
AlipayClient alipayClient = new DefaultAlipayClient(PaymaxConfig.ALI_APIURL, PaymaxConfig.ALI_APPID,PaymaxConfig.ALI_APP_PRIVATE_KEY, PaymaxConfig.ALI_FORMAT, PaymaxConfig.CHARSET, PaymaxConfig.ALI_ALIPAY_PUBLIC_KEY,PaymaxConfig.ALI_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((String)map.get("body"));
model.setSubject((String)map.get("subject"));
model.setOutTradeNo((String)map.get("order_no"));
model.setTimeoutExpress(PaymaxConfig.TIMEOUTEXPRESS);
model.setTotalAmount((String)map.get("amount"));
model.setProductCode("QUICK_MSECURITY_PAY");

Map metadata = (HashMap)map.get("metadata");
JSONObject json = new JSONObject();
json.put("userid", metadata.get("userid"));//userid和channel是用户自定义参数,如果自己的代码没有自定义参数可不必添加,如果有一定要进行URLEncoder.encode()进行编码。
json.put("channel", metadata.get("channel"));
String urlString = URLEncoder.encode(json.toString(), "UTF-8");//自定义参数编码,没有可不用。
model.setPassbackParams(urlString);
request.setBizModel(model);
request.setNotifyUrl(PaymaxConfig.ALI_NOTIFYURL);
try {
//这里和普通的接口调用不同,使用的是sdkExecute
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
orderString = response.getBody();//获取到getBody直接給前端。用这个东西去调起支付宝
} catch (AlipayApiException e) {
log.info("请求支付宝支付对象出现异常");
return "ERROR";
}
return orderString;
}支付代码我们就用这一个类就可以了  有一个辅助类。
PaymaxConfig.java

public class PaymaxConfig {
//编码集
public static final String CHARSET = "UTF-8";

/**支付宝接口url**/
public static final String ALI_APIURL = "https://openapi.alipay.com/gateway.do";

/**支付宝appid*/
public static final String ALI_APPID = "自己的appid";

/**支付宝APP_PRIVATE_KEY**/
public static final String ALI_APP_PRIVATE_KEY = "自己的应用秘钥";

/**FORMAT - JSON**/
public static final String ALI_FORMAT = "json";

/**支付宝公钥ALIPAY_PUBLIC_KEY*/
public static final String ALI_ALIPAY_PUBLIC_KEY = "支付宝公钥";

/**签名方式SIGN_TYPE*/自己的签名方式
public static final String ALI_SIGN_TYPE = "RSA";

/**支付宝订单超时时间**/
public static final String TIMEOUTEXPRESS = "30m";

/**支付宝异步通知地址**/
public static final String ALI_NOTIFYURL = "异步通知的地址";

/**提交方式**/
public static final String POST = "POST";
public static final String GET = "GET";

}SDK下载地址:https://openhome.alipay.com/doc/sdkDownload.resource?sdkType=JAVA
导入jar文件就可以用,是不是很良心。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  支付宝 java