2018-02-03 09:43:54 yji534123343 阅读数 917
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27882 人正在学习 去看看 秦子恒
一、微信开发的整体介绍
开放平台:https://open.weixin.qq.com/
公众平台:https://mp.weixin.qq.com/
1、微信开发的种类
①移动应用开发
支持微信的分享、收藏、支付三大功能,原生开发的人员去使用的开发类别
②网站应用开发
网站支持使用微信账号进行注册和登录,从而来实现:提高用户的留存率,方便不同账号的统一(结合unionId)
③公众账号开发


④公众账号第三方平台
优势在于免繁琐设置,方便小白用户去使用。


2、公众账号开发
①服务号
主要偏向于给用户提供查询服务(招商银行、麦当劳。。)
显示在好友列表,每个月只能群发4条消息


②订阅号
主要偏向于给用户提供资讯(朝闻天下、Web前端。。)
显示在订阅号文件夹内,每天都可以群发1条消息


③小程序
2017年1月9号 (2007年1月9号 推出iphone)
基于微信的平台,ui提供了很多组件,js提供了很多接口


(微信官方的小程序:小程序示例,包含了微信官方封装好的组件、以及封装好的接口)


目标:万物互联 (IOT),  二维码
开放范围:(不包含个人)
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=495


https://mp.weixin.qq.com/debug/wxadoc/dev/index.html


数据存储和服务器:
两种解决方案 ①腾讯云(不到100) ②godaddy


④企业号
主要是建立起 企业与人的关系,提供信息、和企业相关的定制功能


温馨提示:
1)如果想简单的发送消息,达到宣传效果,建议可选择订阅号;
2)如果想进行商品销售,进行商品售卖,建议可申请服务号;
3)如果想用来管理内部企业员工、团队,对内使用,可申请企业号。
4)订阅号可通过微信认证资质审核通过后有一次升级为服务号的入口,升级成功后类型不可再变。
5)服务号不可变更成订阅号。


3、九大类高级接口


语音识别接口
客服接口
OAuth2.0 网页授权接口
生成带参数的二维码接口
获取用户地理位置接口
获取用户基本信息接口
获取关注者列表接口
用户分组接口
上传下载多媒体文件接口


+ 微信支付
(十大类接口的使用,必须是认证过的服务号和订阅号才能使用)




4、正式环境的搭建
(公众账号-》订阅号)


购买自己的域名(万网、dnsPod、godaddy)
购买申请主机空间(新浪云、阿里云、腾讯云、大米云、godaddy、aws)
注册订阅号
登录到订阅号管理接口、服务器的配置、调用10大类接口


5、测试环境的搭建
(公众账号-》订阅号)


主机空间(新浪云)
注册订阅号
登录到订阅号管理接口、服务器的配置、调用10大类接口


6、注册订阅号
①填写邮箱、密码
②到邮箱中激活账号
③选择类型
④登记信息(个人、组织、媒体、企业。。)
⑤填写公众号的信息(名称、介绍、头像)






二、个人订阅号(jssdk)


1、实现功能:统计页面被访问的次数


分析:
①存储需要持久保存的数据
数据库、文件系统、内存中:fileSystem
②读写过程
读:file_get_contents($fileUrl);
写:file_put_contents($fileUrl,$content);


需要apache启动


2、新浪云storage


通过bucket管理我们的文件,如何访问?
saestor:// testbucket/count.txt




3、jsSDK的使用步骤
①绑定域名
②引入js文件
③注入接口(将使用接口的名称,写在config方法中jsAPIList这个数组中)
④在ready中调用接口
⑤在error中处理失败的异常情况






sample.zip有4个文件,
前两个文件都是用来存储数据的,jssdk.php进行网络请求以及数据的读写操作,sample.php文件主要完成接口的注入和调用


jssdk.php封装了2个方法get_php_file、set_php_file,如果部署在服务端,写文件会出现权限拒绝的问题。
①将存储文件 放到新浪云的bucket中
②修改读写文件的路径为 saestor://bucketName/**.php




require subscribe 需要订阅测试账号。




三、版本控制工具(git)


1、版本控制
记录一个或者多个文件内容变化,以便于未来查询指定的版本信息。


svn 集中式/git  分布式
①防止代码的丢失
②团队协作
③版本还原
④更好的管理代码


2、git介绍
用于代码的版本控制,使用方式:命令行/图形化


git(分布式版本控制工具)与github(托管开源项目的网站,托管项目的方式采用的是git)


3、自己使用git将项目上传到github


①申请github的账号 
https://github.com/
注册账号,在选择计划的时候选择continue,在编辑经验时选择skip跳过。
②去邮件激活账号
③start project 只需要指定repository的名称,点击create去创建。


④安装git
一路next,最后点击install安装 取消所有的勾选就可以了。
⑤启动git
到所有程序中,找到git,找到gitbash,点击启动


⑥基础命令
ls (list) 查看当前目录下的文件
clear 清除当前的屏幕信息
pwd (print the work directory)显示当前目录
mkdir web1609 在当前的路径中创建一个叫做web1609的目录
cd web1609 (change directory)
touch a.txt 创建一个叫做a.txt的一个文件


通过电脑中的文件系统找到文件,写上了hello git.


git的用法


git init 初始化仓库
git status 查看仓库的状态
git add a.txt 将a.txt添加到代码仓库
git commit -m '第一次提交'     添加到缓存区


配置上传到github上的用户信息:
git config --global user.name "web1609best"
git config --global user.email "web1609@vip.163.com"


设置完账号之后,重新提交到缓存区:
git commit -m '第一次提交'     添加到缓存区


将本地的代码设置它推送到github上的地址:
git remote add origin https://github.com/web1609best/web1609.git


将当前目录的git仓库推送到github对应的origin地址的master分支
git push origin master

















2016-11-03 14:22:57 qq_15574173 阅读数 512
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27882 人正在学习 去看看 秦子恒
群发消息接口——第1步:预览接口
1.意义:为了防止开发者模式下,每月发送4条消息的限制,从而导致不满意消息的效果现象。
2.代码实现
  • 纯文本
function sendMsgAll(){
//1.获取全局access_token
$access_token = $this->getWxAccessToken();
//2.组装群发预览接口数据 array
$url = "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=".$access_token;
$array =array(
'touser'=> 'oCKD7wXoAmrhBVcVNflyPDEuin8Y', //openid
'text' => array('content' => '旭日养老'), //文本内容
'msgtype' => 'text' //格式
);
//3.将数组转成json格式
$postJson = json_encode ( $array );
//4.调用第三方接口
$res = $this->https_request( $url ,'post', 'json',$postJson);
dump($res);
}

2015-11-27 16:53:58 sinat_27382735 阅读数 2416
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27882 人正在学习 去看看 秦子恒

微信接口基本都需要access_token 因为它的生命周期有限和它的每天的调用次数有限 所以你懂的 要把它给存储起来,最开始我写的是存储到数据库 一段时间后更新 然后boss说可以用socket来做不给数据库压力而且更快些 于是又写了个socket的获取access_token

由于jsapiTicket 和cardApiTicket 使用也非常多而且也是和accessToken一样的特性 所以这三个都全局存了

MySQLdb

(存数据库update比insert要好 由于要换socket 就没优化了。。。。)

#coding=utf8
'''
Created on Oct 22, 2015

@author: yyf
获取 accessToken接口  
获取 jsapiTicket接口
获取 cardApiTicket接口
传入参数:无
返回参数:accessToken/jsapiTicket
调用方式:AccessToken.selectAccessToken()
        AccessToken.selectJsapiTicket()
        AccessToken.selectCardApiTicket()
'''
import HttpUtil
import json
import time
import MySQLdb
import loadProperties
# def accessToken():
class AccessToken(object):#定义一个类
    @staticmethod
    def __getAccessToken():#通过接口获得accessToken
        accessToken=''
        url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+loadProperties.appid+"&secret="+loadProperties.appSecret
        while accessToken=='':
            jsonData=HttpUtil.httpRequest(url)
            if jsonData!=None:
                jsonData=json.loads(jsonData)
                if jsonData.has_key('access_token'):
                    accessToken=jsonData['access_token']
                else:
                    print 'accessToken获取错误'
                    time.sleep(5)
            else:
                print '没有收到'
                time.sleep(5)
        print 'accessToken:',accessToken
        return accessToken
    @staticmethod
    def selectAccessToken():#从数据库拿到accessToken 如果超时则重新获取并插入数据库
        time2=int(round(time.time()*1000))
        conn= MySQLdb.connect(host=loadProperties.host,user='root',passwd='123456',db=loadProperties.db)
        cursor =conn.cursor()
        cursor.execute('select * from  ACCESS_TOKEN where 1<2 order by time desc limit 0,1')
        values=cursor.fetchall()
        cursor.close()
        if len(values)>0:
            accessToken=values[0][0]
            time1=values[0][2]
        if time2-int(time1)>180000:
            accessToken=AccessToken.__getAccessToken()
            jsapiTicket=AccessToken.__getJsapiTicket(accessToken)
            AccessToken.__insertAccessToken(accessToken, jsapiTicket)       
        conn.close()
        #print 'accessToken 查找成功',accessToken
        return accessToken
    @staticmethod
    def __getJsapiTicket(accessToken):#通过接口获得jsapiTicket 如果由于accessToken过期导致jsapiTicket获取失败则重新获取accessToken和jsapiTicket 并插入数据库
        jsapiTicket=''
        url="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=jsapi"
        while jsapiTicket=='':
            jsonData=HttpUtil.httpRequest(url)
            if jsonData!=None:
                jsonData=json.loads(jsonData)
                if jsonData['errcode']=='41001':
                    accessToken=AccessToken.__getAccessToken()
                    jsapiTicket=AccessToken.__getJsapiTicket(accessToken)
                    AccessToken.__insertAccessToken(accessToken, jsapiTicket)
                    #print 'jsapiTicket:',jsapiTicket
                    return jsapiTicket
                if jsonData.has_key('ticket'):
                    jsapiTicket=jsonData['ticket']
                else:
                    print 'jsapiTicket获取错误'
                    time.sleep(5)
            else:
                print 'jsapiTicket获取失败'
                time.sleep(5)
        #print 'jsapiTicket:',jsapiTicket
        return jsapiTicket
    @staticmethod
    def selectJsapiTicket():#从数据库拿到accessToken 如果超时则重新获取并插入数据库
        time2=int(round(time.time()*1000))
        conn= MySQLdb.connect(host=loadProperties.host,user='root',passwd='123456',db=loadProperties.db)
        cursor =conn.cursor()
        cursor.execute('select * from  ACCESS_TOKEN where 1<2 order by time desc limit 0,1')
        values=cursor.fetchall()
        cursor.close()
        if len(values)>0:
            jsapiTicket=values[0][1]
            time1=values[0][2]
        if time2-int(time1)>180000:
            accessToken=AccessToken.__getAccessToken()
            jsapiTicket=AccessToken.__getJsapiTicket(accessToken)
            AccessToken.__insertAccessToken(accessToken, jsapiTicket)       
        conn.close()
        #print 'jsapiTicket查找成功:',jsapiTicket
        return jsapiTicket
    @staticmethod
    def __insertAccessToken(accessToken,jsapiTicket):#每次插入数据库都是accessToken和jsapiTicket一起插入
        #print '开始插入数据库'
        time1=str(int(round(time.time()*1000)))
        conn= MySQLdb.connect(host=loadProperties.host,user='root',passwd='123456',db=loadProperties.db)
        cursor =conn.cursor()
        cursor.execute('insert into ACCESS_TOKEN(access_token,jsapi_ticket,time) values (%s,%s,%s)',(accessToken,jsapiTicket,time1))
        conn.commit()
        cursor.close()
        conn.close()
        #print '插入数据库成功'
    @staticmethod
    def selectCardApiTicket():#获取卡券专用apiTicket 由于之前数据库设置没添加这个字段和这个字段当前用的不多就没存数据库
        cardApiTicket=''
        while cardApiTicket=='':
            accessToken=AccessToken.selectAccessToken()
            url ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=wx_card";
            jsonData=HttpUtil.httpRequest(url)
            if jsonData!=None:
                jsonData=json.loads(jsonData)
                if jsonData.has_key('ticket'):
                    cardApiTicket=jsonData['ticket']
                else:
                    print 'cardApiTicket获取错误'
                    time.sleep(5)
            else:
                print 'cardApiTicket获取失败'
                time.sleep(5)
        print 'cardApiTicket:',cardApiTicket
        return cardApiTicket
#测试
if __name__=='__main__':
    print AccessToken.selectAccessToken()   

2.

socket

(就是Tcp Server 和 Client 咯)

SERVER

#coding=utf8
'''
Created on Nov 12, 2015

@author: yyf
Token  服务器端脚本程序
基本原理:thread1 每3min更改一次全局变量Token
        thread2 一直监听client链接 
        client发送1返回accessToken
        client发送2返回jsApiTicket
        client发送3返回cardApiTicket
'''

from socket import *
import threading
import loadProperties
import HttpUtil
import json
import time 
accessToken='thisIsAccessToken' #全局变量
jsapiTicket='thisIsJaApiRicket'
cardTicket='ThisIsCardTicket'
def server():#server端
    HOST=loadProperties.HOST#设置地址 从配置py拿到
    PORT=loadProperties.PORT#设置端口
    BUFSIZE=128#设置传输量大小
    ADDR=(HOST,PORT)#格式化
    sock=socket(AF_INET,SOCK_STREAM)#创建TCPsocket
    sock.bind(ADDR)#绑定端口
    sock.listen(10)#监听数量
    while True:
        print '等待接入...'
        tcpClientSock,addr=sock.accept()#监听并返回链接客户端的socket
        data=tcpClientSock.recv(BUFSIZE)#接收客户端发送的消息
        if cmp(int(data),1)==0:#如果接收的是1则返回accessToken给客户端
            tcpClientSock.send(accessToken)#发送消息回客户端
            tcpClientSock.close()#关闭socket
        elif cmp(int(data),2)==0:#如果接收的是2则返回jsapiTicket给客户端
            tcpClientSock.send(jsapiTicket)
            tcpClientSock.close()
        elif cmp(int(data),3)==0:#如果接收的是3则返回cardTicket给客户端
            tcpClientSock.send(cardTicket)
            tcpClientSock.close()
    sock.close()
def getToken():#获取三种token
    global accessToken,jsapiTicket,cardTicket#申明全局变量
    accessTokenUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+loadProperties.appid+"&secret="+loadProperties.appSecret
    while True:#while True(0.0)
        jsonData=HttpUtil.httpRequest(accessTokenUrl)#请求微信accessToken接口
        if jsonData!=None:
            jsonData=json.loads(jsonData)#格式话json
            if jsonData.has_key('access_token'):
                accessToken=jsonData['access_token']#得到accessToken
            else:
                print 'accessToken获取错误'
                time.sleep(5)
                getToken()#如果获取失败 重新获取Token
        jsApiTicketUrl="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=jsapi"
        jsonData=HttpUtil.httpRequest(jsApiTicketUrl)
        if jsonData!=None:
            jsonData=json.loads(jsonData)
            if jsonData.has_key('ticket'):
                jsapiTicket=jsonData['ticket']
            else:
                print 'jsapiTicket获取错误'
                time.sleep(5)
                getToken()
        cardApiTicketUrl ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+accessToken+"&type=wx_card";
        jsonData=HttpUtil.httpRequest(cardApiTicketUrl)
        if jsonData!=None:
            jsonData=json.loads(jsonData)
            if jsonData.has_key('ticket'):
                cardTicket=jsonData['ticket']
            else:
                print 'cardApiTicket获取错误'
                time.sleep(5)
                getToken()
        time.sleep(180)#睡3min
threads=[]#多线程...
t1=threading.Thread(target=getToken)
threads.append(t1)
t2=threading.Thread(target=server)
threads.append(t2)
if __name__=='__main__':
    for t in threads:
        t.setDaemon(True)
        t.start()
    t.join()
    print 'over' 

CLIENT

#coding=utf8
'''
Created on Nov 12, 2015

@author: yyf
获取 accessToken接口  
获取 jsapiTicket接口
获取 cardApiTicket接口
传入参数:无
返回参数:accessToken/jsapiTicket/cardApiTicket  (String)
调用方式:GetToken.accessToken()
        GetToken.jsApiTicket()
        GetToken.cardApiTicket()
'''
from socket import *
import loadProperties
def accessToken():#从服务端拿到accessToken
    ADDR=(loadProperties.HOST,loadProperties.PORT)#格式化地址和端口
    sock=socket(AF_INET,SOCK_STREAM)#创建socket
    sock.connect(ADDR)#绑定端口
    sock.send('1')#发送指定的口令给server
    accessToken=sock.recv(128)#接收server返回的信息
    sock.close()#关闭socket
    return accessToken
def jsApiTicket():
    ADDR=(loadProperties.HOST,loadProperties.PORT)
    sock=socket(AF_INET,SOCK_STREAM)
    sock.connect(ADDR)
    sock.send('2')
    jsApiTicket=sock.recv(128)
    sock.close()
    return jsApiTicket
def cardApiTicket():
    ADDR=(loadProperties.HOST,loadProperties.PORT)
    sock=socket(AF_INET,SOCK_STREAM)
    sock.connect(ADDR)
    sock.send('3')
    cardApiTicket=sock.recv(128)
    sock.close()
    return cardApiTicket
# print accessToken()#测

有不对的地方(貌似没有 毕竟用了好久)或者可以优化的地方可以告诉我 万分感激 :D

2016-11-15 11:38:46 qq_24091555 阅读数 20073
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27882 人正在学习 去看看 秦子恒

           由于项目需要,需要接触微信开发,并要调用微信的JS-SDK里面的接口。

       因为经验缺乏,我百度一下关于微信开发的资料,但收集的资料都不尽人意。网上的主流的微信开发是采用PHP开发的,而本人学的Java。所以对PHP微信开发只能看懂思路。更有的是,网上一些微信开发视频,也是和PHP有关的,关于用Java开发的甚少。

       无奈之下,我只好苦啃微信开发文档。大家都知道,微信官方给的开发文档真的有点那个啥,一个功能实现非要分几个地方来说,看完这块,又得点击另一个页面看完另一块,甚是麻烦。这样的设定也让我走了好多坑。

但功夫不负有心,在研究透了微信开发文档之后,我顺利在在项目中完成微信开发。现在我将微信开发的经验分享一下,希望对大家有所帮助。

       微信JS-SDK是微信公众号平台面向网页开发这提供基于微信内的网页开发工具包。接口大类分为:基础接口、分享接口、图像接口、音频接口、智能接口、设备信息、地址位置、摇一摇周边、界面操作、微信扫一扫、微信小店、微信卡劵和微信支付。一般使用频率高的就是分享接口、地理微信、微信扫一扫和微信支付。

接下来,我将主要讲解如何调用微信分享接口。

第一步,准备内网映射工具,ngrok。不清楚这个的同学可以去百度一下。https://ngrok.com为ngrok官网。要进行微信开发,内网映射工具是不可少。毕竟,我们程序员进行开发,要测试开发的产品是否能用,都先在自己的电脑跑一下。但由于ngrok的服务器在外国的,鉴于天朝的墙太高,访问可能不稳定。所以我推荐的是国内的natapp,免费和收费的都有,服务毕竟稳定可靠,只不过要想自定义二级域名就得交费成为VIP咯。

第二步,配置JS接口安全域名。登录要进行开发的公众号,点击公众设置--->功能设置。设置JS接口安全域名,要注意三点:①填写域名前面不需加上http://,例如你的域名是http://test.com,直接填写test.com即可;②域名默认80端口,只支持80和443端口,所以域名后面不能添加端口号。③该域名为你调用微信JS-SDK接口域名。

第三步,引用JS文件。在需要调用JS接口的页面引入http://res.wx.qq.com/open/js/jweixin-1.0.0.js 。


第四步,通过config接口注入权限验证配置 。具体参数有什么用处,在截图都有注释讲解。其中jsApiList为我们要使用的接口,我在下面共引用了五个接口,分别为微信好友分享、QQ好友分享、腾讯微博分享、QQ空间分享和朋友圈分享。调用的都是分享的接口。至于其他接口列表,可以去微信开发文档那浏览一下。这里就不详说。

        第五步,在服务器生成相关参数传到调用JS-SDK页面,完成授权。这是最重要的一步。如上图所示,appId,timestamp,nonceStr,signature都为必填参数。下面我将会详细说说如何生成这些参数并传回页面。

appId为开发的微信公众号的AppID(应用ID),我们可以在登录微信公众号,在开发选项中点击基本配置来查看。

timestamp为系统生成的时间戳。


nonceStr为服务器随机生成的字符串。



signature为微信JS-SDK使用权限算法。在生成signature之前,我们要拿到jsapi_ticket。官方文档是这样解释的:


我们要注意三个地方。jsapi_ticket要缓存两个小时,每过两个小时,向微信那边请求一次。获取jsapi_ticket要通过access_token。那么我们该如何获取access_token呢?


从文档可以看出,access_token需要AppID和AppSercet两个参数。而且access_token和jsapi_ticket一样,有效期皆为两小时。这就要求我们服务器要缓存access_token和jsapi_ticket,当有效期一过,就重新请求。有的人采用是用数据库来存取这两个参数,而我采用的是用Quartz定时器。关于Quartz定时器的使用,可浏览我上篇博客《SSH与Quartz集成》,里面有关于Quartz的使用方法。

AppSercet可在与APPID同一页面获取。接下来,调用接口,获取access_token。



接下来,我们用access_token去获取jsapi_ticket。


获取jsapi_ticket,就可以进行生成签名。在此之前,先看一下官方文档的签名算法。



用代码实现。


第六步,传生成的参数给网页。



第七步,调用已授权的JS接口。


第八步,利用微信Web开发者工具调试,看看是否授权成功。(微信web开发者工具可在微信开发下载)。



2015-06-03 11:30:42 wyx100 阅读数 1651
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27882 人正在学习 去看看 秦子恒

持续更新中

BAE java开发mysql数据库 图文教程

BAE java语言开发mysql源代码下载:


目前微信开发、BAE开发、java开发、mysql开发的教程很多,但是没有一个详细的介绍基于BAE平台、java语言和mysql数据库的微信开发教程。所以写了该教程,希望能给大家一点启发。

教程分为:

1.申请BAE账户;

2.在BAE平台建立web服务器应用;

3.在BAE平台建立mysql数据库服务器应用;

4.使用eclipse开发基于BAE平台的处理微信消息的web服务器系统;

5.web系统调用mysql数据库。


一.申请BAE账户

申请账户:http://bce.baidu.com/product/bae.html

 

本文档基于BAE3.0,

BAE2.0已下线;

为什么要迁移到3.0说明http://godbae.duapp.com/?p=691#more-691

 

二.添加应用部署

http://console.bce.baidu.com/bae/#/bae/app/list

1.      建立一个应用服务,本文档使用tomcat。基于java语言开发。

 

注意:

1.      有些服务需要给BAE充值,充值需要储蓄卡,信用卡暂不支持;

2.      部署应用收费需要0.4元/天;

3.      Mysql服务器,BAE提供一个免费的;

4.      BAE中的数据库不能远程连接,只能是BAE中的应用调用。

 

 

 

 

 

2.      建立BAE的mysql数据库

 

二.               BAE文档

开发前,仔细研究BAE提供的文档。

目前网上很多资料是基于BAE2.0的,根据该资料在BAE3.0上开发,会遇到很多问题,如果想开发顺利,需要仔细研究BAE3.0官方文档。

BAE3.0是BAE2.0的升级版,很多流程做了改动和优化,升级较大,比BAE2.0好用很多。

注意:开发项目前,请仔细研究项目文档。例如,开发java,开发前请先阅读官方提供的开发文档,事半功倍!这是程序猿/媛的好习惯。

 

产品文档

http://bce.baidu.com/doc/index.html

 

 

SDK工具

http://bce.baidu.com/doc/SDKTool/index.html

 

 

三.               搭建开发环境

1.jdk

推荐Jdk1.7及以上版本

Jdk1.6也可以正常使用

 

Jdk配置图文教程:

http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

 

jdk下载地址

http://pan.baidu.com/s/1jGpGRcU

 

 

 

3.      eclipse

 

基于BAE开发Eclipse(已经完成各种BAE和SVN配置)下载地址

http://pan.baidu.com/s/1bnlR0bP

 

 

四.               开发流程

1.      建立工程

2.      添加代码

3.      添加jar包

4.      生成war

5.      更新BAE的svn

6.      提交BAE的svn服务器

7.      在BAE 部署项目

8.      测试

输入网址

图示测试效果

 

 

五.               关键代码


微信图片预览

阅读数 2951

没有更多推荐了,返回首页