1,开通海关报关产品 ,不能登录账号,登陆账号是看不到产品的
2,产品开通成功后,查看报关的开发文档
3,官方提供了项目demo,支持三种语言
4,整合到springboot 项目,使用MD5加密方式
(1),application.yml里面添加,根据自己的参数修改里面值
alipay:
#合作身份者ID
partnerId: 2088***********
#商户的私钥 根据加密类型,填写:MD5 ,RSA
privateKey: ***********
#字符编码格式
inputCharset: utf-8
#签名方式
ignType: MD5
#广州总署海关
customs: ZONGSHU
#商户海关备案号
mchCustomsNo: ***********
#商户海关备案名称
mchCustomsName: ***********
#接口名称
service: alipay.acquire.customs
#接口地址
payGateWay: https://mapi.alipay.com/gateway.do?
(2)下面代码是工具类,httpclient的一些代码
package io.renren.utils.alipay;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
public class AlipayUtil {
/**
* 生成请求url
* @param params
* @param key
* @param paygateway
* @param input_charset
* @return
*/
public static String createUrl( Map params ,String key, String paygateway,String input_charset,String sign_type) {
String prestr = "";
prestr = prestr + key;
String sign = DigestUtils.md5Hex(getContent(params, key));
String parameter = "";
parameter = parameter + paygateway;
List keys = new ArrayList<>(params.keySet());
for (int i = 0; i < keys.size(); i++) {
try {
parameter = parameter + keys.get(i) + "="
+ URLEncoder.encode(params.get(keys.get(i)), input_charset) + "&";
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
parameter = parameter + "sign=" + sign + "&sign_type="+sign_type;
return parameter;
}
/**
* 拼接请求参数
* @param params
* @param privateKey
* @return
*/
private static String getContent(Map params, String privateKey) {
Map map = params;
List keys = new ArrayList(map.keySet());
Collections.sort(keys);
String prestr = "";
for (int i = 0; i < keys.size(); i++) {
String key = (String) keys.get(i);
String value = (String) map.get(key);
if (i == keys.size() - 1) {
prestr = prestr + key + "=" + value;
} else {
prestr = prestr + key + "=" + value + "&";
}
}
String p = "";
if(StringUtils.isNotBlank(privateKey)){
p = prestr+privateKey;
} else {
p = prestr;
}
return p;
}
}
package io.renren.utils.alipay.httpClient;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.*;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.htt