【项目】实现对接京东余额查询接口

需求

通过调京东财务余额接口,在项目中显示京东方的财务余额。

思路

思路如下:

  1. 熟悉京东接口文档
  2. 通过apifox来测试接口是否能成功获取数据
  3. 去nacos写好相应配置文件
  4. 开发

实现

配置JDConfigProperties

**
 * @Description: 京东分配给分销商的参数
 */
@RefreshScope
@Configuration
@ConfigurationProperties(prefix = "jd.openapi")
@Setter
@Getter
public class JDConfigProperties {

    private String grantType;//获取accesstoken接口的固定值,access_token

    private String clientId;//对接账号

    private String clientSecret;//由京东分配

    private String userName;//京东用户名

    private String password;//京东的密码

    private String url;//对接京东的接口地址,配置示例:https://bizapi.jd.com

    //接口地址
    private String accessToken;//获取AccessToken接口,配置示例:/oauth2/access_token
    private String refreshToken;//刷新AccessToken接口,配置示例:/oauth2/refreshToken
	/**
	 * 查询余额接口
	 */
	private String queryBalance;
	/**
	 * 查询余额变动明细接口
	 */
}

京东财务余额Controller

/**
 * @Description:   京东财务余额Controller
 */
@RestController
@Slf4j
@AllArgsConstructor
@RequestMapping("/jdbalance")
@Api(value = "jdbalance", tags = "京东财务余额API")
public class JDBalanceController {

	@Autowired
	private JDBalanceService jinDongBalanceService;


	@GetMapping("/callbackUnionBalance")
	public R callbackUnionBalance(){
		return R.ok(jinDongBalanceService.handleCallbackUnionBalance());
	}
}

京东财务余额Service

/**
 * @Description:  京东财务余额Service
 */
public interface JDBalanceService {
	/**
	 * @Description: 触发查询余额回调
	 */
	JSONObject handleCallbackUnionBalance();;

}

京东财务余额ServiceImpl

/**
 * @Description: 京东财务余额ServiceImpl
 */
@Service
@Slf4j
@AllArgsConstructor
public class JDBalanceServiceImpl implements JDBalanceService {

	@Autowired
	private JDConfigProperties jDConfigProperties;

	@Override
	public JSONObject handleCallbackUnionBalance() {
		Map<String, String> params = new HashMap<>();
		params.put("token", "");
		params.put("pin", "");
		params.put("type", "");
		String callbackUnionBalancerPath= jDConfigProperties.getQueryBalance();
		JSONObject result = handle(callbackUnionBalancerPath, params);
		return result;
	}
	
	private JSONObject handle(String path, Map<String, String> params) {
		String url = jDConfigProperties.getUrl() + path;
		log.info("请求url={}, params={}", url, params);
		// 执行请求
		String respStr = JDHttpUtils.httpPost(url, params);
		JSONObject js = new JSONObject(respStr);
		if (!JSONUtil.isJson(respStr)) {
			log.warn("查询余额明细返回的信息不是JSON格式,实际为[{}]", respStr);
			return js;
		}
		JSONObject jsResult = null;
		if (js.getStr(JDConstants.RESULTCODE).equals(JDResponseCode.SUCCESS)) {
			jsResult = js.getJSONObject(JDConstants.RESULT);
		}
		return jsResult;
	}

}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值