微信开发十 帐号管理

本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。

本篇根据开发者文档-帐号管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/18/8a8bbd4f0abfa3e58d7f68ce7252c0d6.html


public class AccountManagement {

    private int expire_seconds;         //该二维码有效时间,以秒为单位。 最大不超过604800(即7天)。
    private String action_name;         //二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值
    private ActionInfo action_info;     //二维码详细信息
    private String action;              //此处填long2short,代表长链接转短链接
    private String long_url;            //需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url 

    public int getExpire_seconds() {
        return expire_seconds;
    }
    public void setExpire_seconds(int expire_seconds) {
        this.expire_seconds = expire_seconds;
    }

    public String getAction_name() {
        return action_name;
    }
    public void setAction_name(String action_name) {
        this.action_name = action_name;
    }

    public ActionInfo getAction_info() {
        return action_info;
    }
    public void setAction_info(ActionInfo action_info) {
        this.action_info = action_info;
    }

    public String getAction() {
        return action;
    }
    public void setAction(String action) {
        this.action = action;
    }

    public String getLong_url() {
        return long_url;
    }
    public void setLong_url(String long_url) {
        this.long_url = long_url;
    }

    public class ActionInfo {

        private Scene scene;

        public Scene getScene() {
            return scene;
        }
        public void setScene(Scene scene) {
            this.scene = scene;
        }

        public class Scene {
            private int scene_id;       //场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)
            private String scene_str;   //场景值ID(字符串形式的ID),字符串类型,长度限制为1到64,仅永久二维码支持此字段 

            public int getScene_id() {
                return scene_id;
            }
            public void setScene_id(int scene_id) {
                this.scene_id = scene_id;
            }

            public String getScene_str() {
                return scene_str;
            }
            public void setScene_str(String scene_str) {
                this.scene_str = scene_str;
            }
        }
    }
}
public interface AccountManagementService {

    //创建临时二维码
    public String createTempQRCode(AccountManagement accountManagement);

    //创建永久二维码
    public String createQRCode(AccountManagement accountManagement);

    //通过ticket换取二维码
    public String getQRCodeByTicket(String ticket);

    //长链接转短链接接口
    public String getShortUrl(AccountManagement accountManagement);
}
@Service("accountManagementService")
public class AccountManagementServiceImpl implements AccountManagementService {

    private static final Logger logger = Logger.getLogger(AccountManagementServiceImpl.class);

    @Override
    public String createTempQRCode(AccountManagement accountManagement) {
        logger.info("==========createTempQRCode===========");
        String url = WeChatInterface.CREATE_TEMP_QRCODE.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(accountManagement));
    }

    @Override
    public String createQRCode(AccountManagement accountManagement) {
        logger.info("==========createQRCode===========");
        String url = WeChatInterface.CREATE_QRCODE.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(accountManagement));
    }

    @Override
    public String getQRCodeByTicket(String ticket) {
        logger.info("==========getQRCodeByTicket===========");
        String url = WeChatInterface.GET_QRCODE_BY_TICKET.replace("TICKET", ticket);
        return HttpUtil.getStringByGet(url);
    }

    @Override
    public String getShortUrl(AccountManagement accountManagement) {
        logger.info("==========getShortUrl===========");
        String url = WeChatInterface.GET_SHORTURL.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        String cmd ="curl -d \""+ new Gson().toJson(accountManagement) +" \"  \""+url+"\"";
        return cmd;
//      return HttpUtil.getStringByCurl(cmd);
    }

}
@RunWith(SpringJUnit4ClassRunner.class)        // 表示继承了 SpringJUnit4ClassRunner 类
@ContextConfiguration("classpath:spring-mybatis.xml")
public class TestWXAccountManagement {

    @Resource   
    private AccountManagementService accountManagementService;

//  @Test
    public void createTempQRCode() {
        AccountManagement accountManagement = new AccountManagement();
        accountManagement.setExpire_seconds(604800);
        accountManagement.setAction_name("QR_SCENE");
        AccountManagement.ActionInfo actionInfo = accountManagement.new ActionInfo();
        AccountManagement.ActionInfo.Scene scene = actionInfo.new Scene();
        scene.setScene_id(123);
        actionInfo.setScene(scene);
        accountManagement.setAction_info(actionInfo);
      System.out.println(">>>"+accountManagementService.createTempQRCode(accountManagement));
    }

//  @Test
    public void createQRCode() {
        AccountManagement accountManagement = new AccountManagement();
        accountManagement.setExpire_seconds(604800);
        accountManagement.setAction_name("QR_SCENE");
        AccountManagement.ActionInfo actionInfo = accountManagement.new ActionInfo();
        AccountManagement.ActionInfo.Scene scene = actionInfo.new Scene();
        scene.setScene_id(123);
        actionInfo.setScene(scene);
        accountManagement.setAction_info(actionInfo);
      System.out.println(">>>"+accountManagementService.createQRCode(accountManagement));
    }

//  @Test
    public void getQRCodeByTicket() {
      System.out.println(">>>"+accountManagementService.getQRCodeByTicket("gQFz8ToAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL1pFeTUxRUhsdy1hNlh2UHloMklYAAIEzMzkVwMEgDoJAA=="));
    }

//  @Test
    public void getShortUrl() {
        AccountManagement accountManagement = new AccountManagement();
        accountManagement.setAction("long2short");
      accountManagement.setLong_url("http://www.boholo.com/web/case_detail.html?caseID=shanghai%20tongji%20hospital;950275;50000");
      System.out.println(">>>"+accountManagementService.getShortUrl(accountManagement));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值