从微信上获取用户积分-同步到本地数据库

从微信上获取用户的积分,为了同步到本地数据库。
前提:1.能够取得access_token,2.该公众号已经为用户发放了会员卡和积分。

源码如下:

public class TestPoint{   

    private static final String getCartListUrl = "https://api.weixin.qq.com/card/user/getcardlist?   access_token=TOKEN";

    private static final String GetCardInfoUrl = "https://api.weixin.qq.com/card/get?access_token=TOKEN";

    private static final String getUserPointUrl = "https://api.weixin.qq.com/card/membercard/userinfo/get?   access_token=TOKEN";

    @Test
    public Integer getPointFromWechatByOpenId(String openId,String access_token) {

        Integer point = 0;

        String retCartListUrl = getCartListUrl.replace("TOKEN", access_token);

        UserInfo userInfo = userInfoService.getByOpenid(openId);

        OpenId openid = new OpenId();
        openid.setOpenid(userInfo.getOpenId());
        JSONObject jsonObject = CommonUtil.httpsRequest(retCartListUrl, "POST", JSON.toJSONString(openid));
        System.out.println(JSON.toJSONString(jsonObject));
        JSONArray cardList = jsonObject.getJSONArray("card_list");

        if (jsonObject.containsValue("ok")) {
            if (cardList != null && cardList.size() > 0) {
                JSONObject cardJSONObject = cardList.getJSONObject(0);

                Card card = new Card(cardJSONObject.getString("card_id"), cardJSONObject.getString("code"));
                //=============
                //String getcardInfoUrl = GetCardInfoUrl.replace("TOKEN", access_token);
                //CardId cardId = new CardId();
                //cardId.setCard_id(card.getCard_id());
                //JSONObject cardInfoJSONObjectd = CommonUtil.httpsRequest(getcardInfoUrl, "POST",  JSON.toJSONString(cardId));
                //System.out.println(JSON.toJSONString(cardInfoJSONObjectd));
                //=============

                String POINTURL = getUserPointUrl.replace("TOKEN", access_token);
                JSONObject pointJSONObjectd = CommonUtil.httpsRequest(POINTURL, "POST", JSON.toJSONString(card));
                System.out.println(JSON.toJSONString(pointJSONObjectd));

                if (pointJSONObjectd.containsValue("ok")) {
                    int bonus = pointJSONObjectd.getInt("bonus");
                    System.out.println(bonus);
                    point = bonus;

                }

            }

        }
     return point;
    } // endMethod

} // endClass

 

@Data
@AllArgsConstructor
@NoArgsConstructor
class Card {

    private String card_id;
    private String code;

}

@Data
class OpenId {

    private String openid;

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值