java集成京东联盟且订单绑定自有平台用户代码实现(保证可用)
关联文章
java集成多多进宝且订单绑定自有平台用户代码实现(保证可用)
java集成淘宝联盟且订单绑定自有平台用户代码实现(保证可用)
java集成京东联盟且订单绑定自有平台用户代码实现(保证可用)
京东联盟官网
https://union.jd.com/index
1、创建网站
2、领取授权key
3:控制台
https://union.jd.com/openplatform/console/sdk
注:2024-02开始接口通过等级更新api调用次数
https://union.jd.com/searchResultDetail?articleId=166831
4:代码实现
将下载的sdk依赖进项目中 (这里不做多描述)
JDUtils
import com.alibaba.fastjson.JSONObject;
import com.jd.open.api.sdk.DefaultJdClient;
import com.jd.open.api.sdk.JdClient;
import com.jd.open.api.sdk.domain.kplunion.promotioncommon.PromotionService.request.get.PromotionCodeReq;
import com.jd.open.api.sdk.request.kplunion.*;
import com.jd.open.api.sdk.response.kplunion.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;public class JDUtils {private static final Logger logger = LoggerFactory.getLogger(com.zbkj.common.utils.jdUnion.JDUtils.class);/*** 应用 id*/private static final String appKey = "xxxxxx";/*** 应用 id*/private static final String appSecret = "xxxxxxxxxxxxxxx";private static final String SERVER_URL = "https://api.jd.com/routerjson";public static JSONObject promotionCommon(String materialId,String siteId,String uid) throws Exception {JdClient client=new DefaultJdClient(SERVER_URL,"",appKey,appSecret);UnionOpenPromotionCommonGetRequest request=new UnionOpenPromotionCommonGetRequest();PromotionCodeReq promotionCodeReq=new PromotionCodeReq();promotionCodeReq.setMaterialId(materialId);promotionCodeReq.setSiteId("xxxxx");promotionCodeReq.setSubUnionId(uid);request.setPromotionCodeReq(promotionCodeReq);request.setVersion("1.0");UnionOpenPromotionCommonGetResponse response=client.execute(request);JSONObject result = new JSONObject();if (response.getGetResult().getCode() == 200) {result =(JSONObject)JSONObject.toJSON(response.getGetResult()) ;logger.info("promotionCommon 返回结果====" + result);}else {result.put("fail","1");}return result;}public static String getTime(String time) {String a = time.replace(" ","+");return a.replace(":","%3A");}/*** 京东购买* @param url 京东链接* @param userId 平台用户id* @return* @throws Exception*/public static Map<String,String> payGeneralization(String url,String userId) throws Exception {Map<String,String> map=new HashMap<>();JSONObject jsonObject = promotionCommon(url, "", userId);if (!jsonObject.containsKey("fail")){JSONObject js = jsonObject.getJSONObject("data");map.put("clickURL",js.getString("clickURL"));if (js.containsKey("jCommand")){map.put("jCommand",js.getString("jCommand"));}}return map;}
}
siteId
就是我的推广-推广管理-网站管理
订单如何绑定平台用户?
payGeneralization
方法需要传入用户id,查询订单时在订单的subUnionId
子渠道标识,在转链时可自定义传入
https://union.jd.com/openplatform/api/v2?apiName=jd.union.open.promotion.common.get
订单: https://union.jd.com/openplatform/api/v2?apiName=jd.union.open.order.row.query
uniapp唤起京东app/京东小程序示例代码
// #ifdef MP-WEIXIN
uni.navigateToMiniProgram({
appId: '微信appid',
path: `pages/union/proxy/proxy?spreadUrl=${e}`,
envVersion: 'release',
})
// #endif
// #ifdef H5
window.open(url)
// #endif
// #ifdef APP-PLUS
let data = {category:'jump', des:'getCoupon', sourceType: 'PCUBE_CHANNEL', url: url}
let openUrl = `openApp.jdMobile://virtual?params=${JSON.stringify(data)}`;
plus.runtime.openURL(openUrl, res => {
uni.showModal({
content: '本机未检测到京东客户端,是否打开浏览器访问页面?',
success: (resm) => {
if (resm.confirm) {
plus.runtime.openURL(res.data.clickURL)
}
}
})
})
这时候因为等级不够你没办法通过京东联盟api获取商品详情以及列表数据,大淘客
可以
5:大淘客
这里面的api都可以使用即使你没有申请权限的接口这里有的都能用,只要授权就可以
官网: https://www.dataoke.com/
淘宝联盟授权
京东联盟PID可以根据你的需求填写
在仓库中下载对应的sdk代码,下载好后运行看会不会报错,没有报错的话就打包并依赖进项目
DTKUtils
import com.dtk.api.client.DtkApiClient;
import com.dtk.api.request.putstorage.DtkJdCommodityDetailsRequest;
import com.dtk.api.response.base.DtkApiResponse;
import com.dtk.api.response.putstorage.DtkJdCommodityDetailsResponse;
import java.util.List;public class DTKUtils {/*** 大淘客应用 id*/private static final String dtkappKey = "xxxxxxx";/*** 大淘客应用秘钥*/private static final String dtkSecret = "xxxxxxxxxxxxxxxxxxxxx";/*** 查询京东商品详情* @param skuIds* @return*/public static List<DtkJdCommodityDetailsResponse> getJDShopDetails(String skuIds){DtkApiClient client = DtkApiClient.getInstance(dtkappKey,dtkSecret);DtkJdCommodityDetailsRequest request = new DtkJdCommodityDetailsRequest();request.setSkuIds(skuIds);DtkApiResponse <List<DtkJdCommodityDetailsResponse>> execute = client.execute(request);return execute.getData();}
}
更多接口可自行研究,大淘客有代码可以直接copy的,改下参数就可以了