微信开发者需要公司资质嘛

2015-08-29 16:38:00 weixin_30446613 阅读数 29

微信登录是指App和网站应用,可以通过接入该功能,让用户可以通过微信帐号登录,并且用户同意后将用户基本信息(头像、昵称、性别、地区、语言)提供给开发者。大大降低了用户注册、登录的门槛,借助庞大的微信用户群,给App带来更多新用户。

 

微信登录功能申请已经向开发者开放,只要微信开放平台帐号通过开发者资质认证,其帐号下所有的App和网站应用将自动获得微信登录权限。

 

一、申请权限

通过微信开放平台开发者资质认证的开发者,其帐号下所有的移动应用和网站应用自动获得微信登录权限。

 

第一步:访问微信开放平台网站(open.weixin.qq.com),点击进行开发者注册,已经有帐号的可以直接登录。

 

第二步:申请微信开发者认证,在帐号中心申请开发者认证。

 

第三步:申请提交应用,进入管理中心,点击“创建移动应用”或者“创建网站应用”,填写资料后等待审核,审核通过后就会获得AppID和AppSecret。

 

二、搭建接入环境

获得AppID和AppSecret后,前往微信开放平台资源中心下载对应平台的SDK集成到App的工程文件中。开发环境搭建方法可参考微信开放平台资源中心文档:

iOS接入环境搭建方法:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=&lang=zh_CN

 

Android接入环境搭建方法:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN

 

三、微信登录接入开发(以移动应用开发为例)

微信登录授权流程大致分为以下步骤:

 

1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

 

2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;

 

3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

 

 

 

 

 

第一步:请求CODE

开发者在集成了微信SDK的App中调用微信登录接口。

iOS平台应用授权登录接入代码示例:

 

 

(void)sendAuthRequest

{

//构造SendAuthReq结构体

SendAuthReq* req =[[[SendAuthReq alloc ]init ] autorelease ];

req.scope = @"snsapi_userinfo";

req.state = @"123" ;

//第三方向微信终端发送一个SendAuthReq消息结构

[WXApi sendReq:req];

}

 

Android调用如下代码:

 

 

{

// send oauth request

Final SendAuth.Req req = newSendAuth.Req();

req.scope = "snsapi_userinfo";

req.state ="wechat_sdk_demo_test";

api.sendReq(req);

}

 

微信客户端会被拉起,跳转至授权界面



用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回code数据给调用方。

 

第二步:通过code获取access_token

获取第一步的code后,App要将code传回App的后台服务器,后台服务器请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

 

参数:appid和secret填入在申请移动应用的时候开放平台分配的字段,可在应用详情中获得,code填写第一步获得的code,grant_type固定填写为authorization_code。

 

 

特别注意:请在任何情况下都不要将secret和code泄漏给其他人,也不要保存在App客户端中,防止造成敏感信息泄漏。

 

调用成功后返回如下信息:

{

"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",

"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

 

 

注意:access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天。

 

请求接口如下:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

 

第三步通过access_token调用接口

获得access_token后,通过一下接口可以获得用户基本信息。

 

http请求方式: GET

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

 

 

返回信息如下:

{

"openid":"OPENID",

"nickname":"NICKNAME",

"sex":1,

"province":"PROVINCE",

"city":"CITY",

"country":"COUNTRY",

"headimgurl":"http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",

"privilege":[

"PRIVILEGE1",

"PRIVILEGE2"

],

"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

 

注意:这一步同样要在App客户端后台进行,不要将ACCESS_TOKEN暴露到或者保存在App客户端中,后台获取到用户基本信息后,保存到相应的用户帐户数据库中,再由App客户端访问数据库后展现给用户。

 

转载于:https://www.cnblogs.com/ytkah/articles/4769362.html

2016-09-21 10:33:47 qq_31927865 阅读数 9838

 

微信支付前的准备工作

1 开发者资质认证

 微信支付开发第一步就是使用公司管理者/高层帐号登录微信开放平台,进入“账号中心”,进行开发者资质认证,需要填写公司资料,包括但不限于,公司注册号,公 司营业执照,公司对外办公电话,公司对公银行卡信息(卡号,发卡行)。审核时间一般是1~7个工作日,我们一天就审核通过了,这一步非常简单。


备注:1、因为从2015年10月1日起,国家实行三证(组织机构代码证,企业营业执照,税务登记证)合一,所以组织机构代码处填写-工商执照注册号,同样,组织机构代码证,上传-企业工商营业执照。 
备注2:进行开发者资质认证需要支付300元人名币/年,只有具备开发者资质认证的开发者才能够使用app支付,授权登录等接口。

2、我们申请的微信支付审核通过以后,会收到一个来自官方的邮件,在新版本里面已经不会直接附上KEY,而是需要用户进入商户平台设置自己的KEY。

2  创建应用

 根据所提示的信息填写即可。

申请通过之后就会有AppIDAppSecret  此时的appid不能直接拿来做微信支付,因为还有一个重要的一步要开通微信支付。

3  开通微信支付

详情请查阅微信APP支付接入商户服务中心

 

点击申请开通微信支付

根据提示填写相关的信息,开通微信支付审核比较严格,觉得有点坑,注意第三方支付公司和demo一定是审核不通过的!!!!

注意:如果app还没有上线而且界面还没有完善,可以用美工做好的图上传上去。审核时间一般7个工作日。

微信团队会在7个工作日给出审核结果,结果会发送到开放平台通知中心邮箱中,通过审核后,商户将收到邮件通知,邮件中包含商户号和登录密码,请牢记申请时填写的邮箱地址。后台也要绑定相关的商户号。

4  验证结算账户,在线签署协议

1)验证账户,签署协议:

微信支付会向申请时提交的结算账户汇入一笔金额随机的验证款,登陆商户平台 回填验证款,并签署在线协议,开启结算功能。

2)开始开发工作:

开发文档:微信支付App支付开发文档

 

 

 

微信支付详细步骤    

     1.获取订单信息

    2.根据订单信息和支付相关的账号生成sign,并且生成支付参数

   3.将支付参数信息POST到微信服务器,获取返回信息

   4.根据返回信息生成相应的支付代码(微信内部)或是支付二维码(非微信内),完成支付。

1、后台设置

商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图红框内所示。

 

应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package="net.sourceforge.simcpux"。

应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,如图所示,绿色串即应用签名。签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

 

2   添加依赖包

Android Studio环境下:在build.gradle文件中,添加如下依赖即可:

dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}

dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}

3、注册APPID

商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下:

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

// 将该app注册到微信

msgApi.registerApp("wxd930ea5d5a258f4f");

4 获取微信支付参数 

把订单信息提交给后台,后台返回微信支付所用的值,比如paysing签名信息

5、调起支付


IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(request);

注意:该sign生成字段名列表见调起支付API

6、支付结果回调

在app包下新建wxapi包,比如app包名为com.test.app,那个新建的包路径为com.test.app.wxapi,该包下新建WXPayEntryActivity,继承自任意Activity。该Activity用以接收支付结果回调,清单声明此Activity的格式为(包名或类名不一致会造成无法回调)

 

在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:


public void onResp(BaseRespresp){
  	if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
  		Log.d(TAG,"onPayFinish,errCode="+resp.errCode);
  		AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
  		builder.setTitle(R.string.app_tip);
  	}
}

回调中errCode值列表:

名称 描述 解决方案
0 成功 展示成功页面
-1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
-2 用户取消 无需处理。发生场景:用户不支付了,点击取消,返回APP。

WXPayEntryActivity代码示例

 

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler
{
    
    private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.allscore_pay_result);
    
        api.handleIntent(getIntent(), this);


    }
    
    @Override
    protected void onNewIntent(Intent intent)
    {
        super.onNewIntent(intent);
        setIntent(intent);

    }
    
    @Override
    public void onReq(BaseReq req)
    {
    }
    
    @Override
    public void onResp(BaseResp resp)
    {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX)
        {
            // resp.errCode == -1 原因:支付错误,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等
            // resp.errCode == -2 原因 用户取消,无需处理。发生场景:用户不支付了,点击取消,返回APP
            if (resp.errCode == 0) // 支付成功
            {
                Toast.makeText(this, "支付成功", Toast.LENGTH_SHORT).show();

            }
            else
            {
                Toast.makeText(this, "支付取消" , Toast.LENGTH_SHORT).show();


            }
            finish();
        }
    }



}


好了,微信支付的详细流程已经完成,如果最终结果掉不起来就看自己的包名,签名(微信支付必须正式打包测试

最方便的一种形式在build.gradle中写上你的签名包就可以啦~

//签名信息配置

    signingConfigs {
        release {
            storeFile file("./keystore/jxshop.jks")
            keyAlias "all"
            storePassword "all123"
            keyPassword "all123"
        }
        debug {
            storeFile file("./keystore/jxshop.jks")
            keyAlias "all"
            storePassword "all123"
            keyPassword "all123"
        }

    }

 

 

 

 


 

 

 

2017-07-18 22:42:43 u013201439 阅读数 1552
前言


  我们利用微信公众平台为用户提供服务的方式基本上可以分为两种:

  • 后台编辑模式 ,公众号管理员直接在微信后台处理用户请求。

  • 开发者模式,使用微信提供的接口,将用户的请求通过微信平台转发到开发者的应用程序中。



  在开发者模式中,微信平台更像是一个中转站,在用户与开发者直接传递消息。开放公众号的更多功能。

准备


  • 一台拥有公网IP的服务器

  可以在阿里云、腾讯云上面申请(新用户可以使用有限的免费时长),或者使用花生壳、natapp等工具进行内网穿透。


开启服务


  所谓的开启服务通俗的来说就是启动一个网站,无论你使用ASP.NET 、Java EE,还是PHP、Python都可以,可以选择你熟悉的技术来开发。

  这里我们使用ASP.NET MVC来进行开发,首先在VS中新建一个ASP.NET MVC的应用程序,按下F5运行程序,出现下面页面表明启动成功。


  添加一个新的控制器(Controller),起名为WeiChatTestController,在WeiChatTestController中添加一个Action用来响应Get请求。根据MVC的路由规则,输入请求地址:

http://localhost:7388/WeiChatTest/Hello

  浏览器中会出现 Hello World! ,如果不清楚MVC的路由规则,可以查看我的另一篇文章ASP.NET MVC-轻松理解Routing(路由)

public ActionResult Get()
{
     return Content("Hello World!");     
}


代码开发


  微信接口文档中给出的验证逻辑如下所示:


public ActionResult Get()
{
     string token = "weichat";

     string echoStr = Request.QueryString["echoStr"];//随机字符串 
     string signature = Request.QueryString["signature"];//微信加密签名
     string timestamp = Request.QueryString["timestamp"];//时间戳 
     string nonce = Request.QueryString["nonce"];//随机数 
     string[] ArrTmp = { token, timestamp, nonce };
     Array.Sort(ArrTmp);     //字典排序
     string tmpStr = string.Join("", ArrTmp);
     tmpStr = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
     tmpStr = tmpStr.ToLower();
     if (tmpStr == signature)
     {
         return Content(echoStr);
     }
     else
     {
         return Content("false");
     }
}


服务器配置


  完成了开发者后台的代码之后,我们需要将后台服务绑定到微信公众号平台上,对其进行测试,处理用户消息。在公众号管理页面中选择“开发”下的“基本配置”项,进行绑定并启用服务器配置。

  • URL:必须以http://或https://开头,分别支持80端口和443端口。

  • Token:和代码中的token保持一致,用来验证开发者身份。

  • EncodingAESKey:消息加密密钥,点击随机生成即可。

  • 消息加解密方式:为了方便测试,先选择“明文模式”。


  提交后会提示是否成功。


小结


  总的来说,我们只需要提供一个可以响应get请求的方法,接收微信服务器传过来的参数,将其中的tempstamp、nonce与本地的token采用与微信服务器端相同的加密方式进行加密,比较后相同即为通过验证。

2017-07-19 13:19:00 fjnjxr 阅读数 13912

微信开放平台网址:https://open.weixin.qq.com

申请微信开放平台的主要目的:实现APP或者网站的微信登录。

所以要实现APP或者网站的微信登录,必须通过微信开放平台开发者资质认证(一年需要交纳300元)才能获得接口权限。


现在很多企业都已经实现了三证合一,这主要记录下三证合一填写申请时候的一些注意事项。


1、组织机构代码证
目前仅支持中国大陆企业;
注: 若由于三证合一原因没有组织机构代码证时可填统一社会信用代码;
2、企业工商营业执照(副本)
中国大陆工商局或市场监督管理局颁发的工商营业执照必须在有效期内,且须是当前企业最新的工商营业执照。
注: 三证合一统一社会信用代码18位,可在营业执照注册号位置上填写“注册号”或“统一社会信用代码”;
3、申请公函
请下载申请认证公函(模版参考示例)
填写认证公函需要提供公众号的原始ID,去我的账户信息查看原始ID。
上传加盖企业公章的原件照片或扫描件
4、其他证明材料
可提交其他证明材料。
注:上传文件需加盖企业公章的原件照片或扫描件
支持.jpg .jpeg .bmp .gif .png格式照片,大小不超过2M。

2018-06-15 11:10:20 dcb_ripple 阅读数 7157

我的疑问?

便于理解,暂订我的微信号为   l777  公司微信号(l888)。

刚开始学习时,依据官方教程申请了个人小程序账号(l777),跟着教程瞎捣鼓一阵子后准备实际做项目,公司准备立项开发小程序。公司小程序账号(l888)管理员将我微信(l777)设置为开发人员进行开发,那我微信(l777)就有了两个开发权限。

已知条件

  • 账号l777绑定了两个小程序的开发权限
  • 利用微信开发者平台进行开发时需要登录验证

疑难杂症

  • 账号如何对所开发程序进行归属?  即:我怎么知道我开发的这个程序是公司的呢还是我个人的呢,怎么区分。

总结如下

一个账号拥有多个开发者权限,但登陆微信开发者平台时都是同一个微信号,如何区分

大概过程

尽量通过截图进行描述及解决

1.微信开发者工具登陆


2.填写Appid以及信息


选择小程序-》添加项目


填写相关信息,目录与项目名称随意填写,Appid是重中之中 即利用Appid进行区分。

如填写错误或不错在


3.Appid从哪里来

微信公众平台:https://mp.weixin.qq.com/wxopen/initprofile?action=home&lang=zh_CN&token=48072014

即:你之前的那个账号, 没有账号怎么办?

看这里:https://developers.weixin.qq.com/miniprogram/dev/index.html?t=2018612


登陆后的界面



Appid即是,这儿问题其实就已经解决了。

解决

依旧假设,个人微信l777   公司公众号主体 l888。每个账号主体都会有一个独一无二的AppId,你拥有两个开发者权限分别是

个人申请的(l777)的appid为“wx60430ec6666666a3

公司授权的(l888)的appid为“wx60430ec8888888a3

两个AppId都可以使用,那么Appid也就成为了你区分其二者的关键。我账号是一个,但是Appid其实是有两个可以用的呀。

那么结论很好得出来了,只需要在创建微信小程序时输入不同的Appid即可完成区分。