一、支付參數組裝:
1 String[] parameters={ 2 "service=\"mobile.securitypay.pay\"",//固定值 3 "partner=\"24243535353\"",//商戶號 4 "_input_charset=\"utf-8\"", 5 "notify_url=\"http://sfsfs/dsdsd/notify/AlipayNotify.action\"",//通知地址 6 "out_trade_no=\""+orderid+"\"",//商戶內部訂單號 7 "subject=\""+shopOrder.getHdbt()+"\"",//說明 8 "payment_type=\"1\"",//固定值 9 "seller_id=\"323232@163.com\"",//賬戶 10 "total_fee=\""+truePaymoney+"\"",//支付金額(元) 11 "body=\"旅游商品\"",//標題 12 "it_b_pay=\"30m\"" 13 };
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簽名
1 private String signAllString(String [] array){ 2 StringBuffer sb = new StringBuffer(""); 3 for (int i = 0; i < array.length; i++) { 4 if(i==(array.length-1)){ 5 sb.append(array[i]); 6 }else{ 7 sb.append(array[i]+"&"); 8 } 9 } 10 System.out.println(sb.toString()); 11 String sign = ""; 12 try { 13 sign = URLEncoder.encode(RSA.sign(sb.toString(), AlipayConfig.private_key, "utf-8"), "utf-8"); 14 } catch (UnsupportedEncodingException e) { 15 // TODO Auto-generated catch block 16 e.printStackTrace(); 17 } 18 sb.append("&sign=\""+sign+"\"&"); 19 sb.append("sign_type=\"RSA\""); 20 21 return sb.toString();//將該字符串返回到手機端就就可以調用APP支付接口進行支付了 22 }
