支付宝APP支付后台参数生成Java版(一)

时间:2022-02-05 04:29:52

一、支付参数组装:

                         String[] parameters={
"service=\"mobile.securitypay.pay\"",//固定值
"partner=\"24243535353\"",//商户号
"_input_charset=\"utf-8\"",
"notify_url=\"http://sfsfs/dsdsd/notify/AlipayNotify.action\"",//通知地址
"out_trade_no=\""+orderid+"\"",//商户内部订单号
"subject=\""+shopOrder.getHdbt()+"\"",//说明
"payment_type=\"1\"",//固定值
"seller_id=\"323232@163.com\"",//账户
"total_fee=\""+truePaymoney+"\"",//支付金额(元)
"body=\"旅游商品\"",//标题
"it_b_pay=\"30m\""
};
                
                   signAllString(parameters)

二、配置文件

私钥的生成请参考官网https://doc.open.alipay.com/doc2/detail.htm?treeId=58&articleId=103242&docType=1

然后将私钥配置到AlipayConfig,公钥在支付宝的商户端配置。

public class AlipayConfig {

	//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 合作身份者ID,以2088开头由16位纯数字组成的字符串
public static String partner = "208834334343"; public static String key = "sdfsfs"; public static String service = "mobile.securitypay.pay"; public static String seller_id = "sdfsdfsf@163.com";
public static String private_key = "";
// 商户的公钥钥
public static String public_key ="";
// 支付宝的公钥,无需修改该值(不要删除也不要修改,在接收通知的时候需要进行签名认证)
public static String ali_public_key= "";
// 调试用,创建TXT日志文件夹路径
public static String log_path = "D:\\"; // 字符编码格式 目前支持 gbk 或 utf-8
public static String input_charset = "utf-8"; // 签名方式 不需修改
public static String sign_type = "RSA"; }

三、支付参数RSA签名

     private String signAllString(String [] array){
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < array.length; i++) {
if(i==(array.length-1)){
sb.append(array[i]);
}else{
sb.append(array[i]+"&");
}
}
System.out.println(sb.toString());
String sign = "";
try {
sign = URLEncoder.encode(RSA.sign(sb.toString(), AlipayConfig.private_key, "utf-8"), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sb.append("&sign=\""+sign+"\"&");
sb.append("sign_type=\"RSA\""); return sb.toString();//将该字符串返回到手机端就就可以调用APP支付接口进行支付了
}