HTML5技术

VopSdk一个高逼格微信公众号开发SDK - deeround

字号+ 作者:H5之家 来源:H5之家 2017-05-04 17:02 我要评论( )

一、我们的目标 分离基础参数和业务参数。 具有高重用和扩展性。 轻量级。 二、实现目标 (一)分离基础参数和业务参数 仔细分析所有接口,抽离出每个模块接口的公共参数。 A、针对微信公众号所有接口分析(不包括微信支付) a、获取基础Access_Token使用的

 一、我们的目标

       分离基础参数和业务参数。

       具有高重用和扩展性。

       轻量级。

二、实现目标

      (一)分离基础参数和业务参数

               仔细分析所有接口,抽离出每个模块接口的公共参数。

               A、针对微信公众号所有接口分析(不包括微信支付)

                   a、获取基础Access_Token使用的是AppId和AppSecret。

                   b、网页授权相对独立,但也会使用到AppId和AppSecret。

                   c、其他接口,皆是通过基础Access_Token来获取数据的。

               根据a、b、c得出公共或者说SDK保留参数即为SDK的基础参数有AppId、AppSecret、基础Access_Token。

 

             B、微信支付接口分析

                  分析所得,都有appid、mch_id、nonce_str、sign_type、sign参数,即为SDK基础参数。

                  针对退款还有两个特殊参数,证书路径以及证书密码。

 

             根据A、B所得,我们抽离出了基础参数,基础参数不能和业务参数只能通过初始化或者调用单独方法复制,业务参数用于调固定方法一次性传入。

 

      (二)具有高重用和扩展性

              普通接口有两种调用方法GET和POST,针对GET就是参数就在地址上,地址上的参数既包括基础参数也包含了业务参数;POST的情况业务参数是json格式;出参都是json。

              支付接口入参和出参都是xml。

 

              设计之处就得考虑到上面不同场景,每个接口对象可设置自己请求方式(GET或者POST);每个接口可设置自己格式化方式(json或者xml)。

              针对退款还可设置是否需要证书以及设置证书路径和证书密码等公共方法。

 

       (三)轻量级

               不引用第三方组件。

 

 

下面是测试样例:

a、删除菜单

Test() { Vop.Api.Request.VopMobilePublicMenuDeleteRequest request = new Vop.Api.Request.VopMobilePublicMenuDeleteRequest(); Vop.Api.IVopClient client = new Vop.Api.DefaultVopClient(Config.AppId, Config.AppSecret); string accessToken = Vop.Api.Util.AccessTokenContainer.GetAccessToken(Config.AppId, Config.AppSecret); var result = client.Execute(request, accessToken); }

 

b、创建菜单

public static void Test() { string menuStr = "{\"button\":[{\"name\":\"医疗业务\",\"sub_button\":[{\"type\":\"view\",\"name\":\"主页\",\"url\":\"http://m.baidu.com\"}]}]}"; Vop.Api.Request.VopMobilePublicMenuCreateRequest request = new Vop.Api.Request.VopMobilePublicMenuCreateRequest(); request.SetBizModel(menuStr); Vop.Api.IVopClient client = new Vop.Api.DefaultVopClient(Config.AppId, Config.AppSecret); string accessToken = Vop.Api.Util.AccessTokenContainer.GetAccessToken(Config.AppId, Config.AppSecret); var result = client.Execute(request, accessToken); }

c、发送消息

Test() { Vop.Api.Request.VopMobilePublicMessageCustomSendRequest request = new Vop.Api.Request.VopMobilePublicMessageCustomSendRequest(); request.SetBizModel(); Vop.Api.IVopClient client = new Vop.Api.DefaultVopClient(Config.AppId, Config.AppSecret); string accessToken = Vop.Api.Util.AccessTokenContainer.GetAccessToken(Config.AppId, Config.AppSecret); var result = client.Execute(request, accessToken); }

 

d、获取用户信息

Test() { Vop.Api.Request.VopMobilePublicUserInfoRequest request = new Vop.Api.Request.VopMobilePublicUserInfoRequest(); request.SetBizModel(); Vop.Api.IVopClient client = new Vop.Api.DefaultVopClient(Config.AppId, Config.AppSecret); string accessToken = Vop.Api.Util.AccessTokenContainer.GetAccessToken(Config.AppId, Config.AppSecret); var result = client.Execute(request, accessToken); }

 

e、支付接口

Test() { Vop.Api.IVopClient client = , Config.MchId, Config.MchSecret); Vop.Api.Request.VopTradeWapPayRequest request = new Vop.Api.Request.VopTradeWapPayRequest(); request.SetBizModel(, , CreateOrderNo(), , , , )); var r1 = client.PayExecute(request); } CreateOrderNo() { , DateTime.Now.ToString(), Math.Abs(BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0))); }

 

 

。。。。。。。

 

是不是很简单啊,如果我要新增一个接口怎么弄呢,So Easy.

比如新增一个发送模板消息的接口,你只需创建两个类即可完成:

接口请求对象: VopMobilePublicMessageTemplateSendRequest.cs 

接口返回实体: VopMobilePublicMessageTemplateSendResponse.cs 

 

VopMobilePublicMessageTemplateSendRequest.cs

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    2017-05-02 11:00

  • 【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

    【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

    2017-04-30 16:00

  • 【CSS】如何用css做一个爱心 - 只会修电脑的程序猿

    【CSS】如何用css做一个爱心 - 只会修电脑的程序猿

    2017-04-18 11:00

  • VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug - 雲霏霏

    VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug - 雲霏霏

    2017-04-07 16:01

网友点评