android支付宝支付怎么设置应用网关和应用公钥
1.下载官方架包和说明文档<br> 其实官方已经提供了安装指南,<br> 里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。
<br><br> 下载下来,我们主要是用到Android(20120104)目录下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,这两个文件是我们不能修改的支付宝api和安装包。
<br> 2.商户签约<br> 现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步操作,oauth也是如此。
<br> 打开登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。
<br> 签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。
<br> 我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。
<br><br> 3.密钥配置<br> 解压openssl-0.9.8k_WIN32(RSA密钥生成工具).zip,打开cmd,命令行进入openssl-0.9.8k_WIN32(RSA密钥生成工具)in目录下,<br> (1).执行<br> opensslgenrsa-outrsa_private_key.pem1024<br><br> 生成rsa_private_key.pem文件。
<br> (2).再执行<br> opensslrsa-inrsa_private_key.pem-pubout-outrsa_public_key.pem<br><br> 生成rsa_public_key.pem文件。
<br> (3).在执行<br> k8-informPEM-inrsa_private_key.pem-outformPEM-nocrypt<br><br> 将RSA私钥转换成PKCS8格式,去掉begin和end那两行,把里面的内容拷贝出来,保存到某个txt中,如rsa_private_pkcs8_key.txt中(我好像没用到这个)。
<br> 打开rsa_public_key.pem,即商户的公钥,复制到一个新的TXT中,删除文件头”-----BEGINPUBLICKEY-----“与文件尾”-----ENDPUBLICKEY-----“还有空格、换行,变成一行字符串并保存该TXT文件,然后在网站的“我的商家服务”切换卡下的右边点击“密钥管理”,然后有个"上传商户公钥(RSA)"项,选择上传刚才的TXT文件.<br> 好了,服务器配置OK,因为这一段之前没有截图,现在弄好了又不好截图,如果有不明白的地方请大家参考官方文档。
<br> 4.引用jar和包含安装包<br> (1).新建android工程;<br> (2).copy上面说的alipay_plugin.jar到工程的libs目录下,并在javabuildpath中通过AddExternalJARs找到并引用该jar;<br> (3).copy上面说的alipay_plugin223_0309.apk安装包到assets目录下,后面配置路径用到。
<br> <br> 如果libs和assets目录没有,手动建立者两个目录。
<br> 5.调用代码整理<br> 这里我们要严重的参考文档中AppDemo,我们建一个.tianxia.lib.baseworld.alipay,把.alipay.android.appDemo4包下的源码全部copy到刚才我们自己的包下,还有res目录下的资源文件也合并到我们工程res下。
<br> 其中AlixDemo.java,ProductListAdapter.java,Products.java是示例类,我们借鉴完后可以删除。
<br> PartnerConfig.java是配置类,配置商户的一些配置参数。
<br> 其他的类是严重参考类,直接留下使用。
<br> PartnerConfig.java代码如下:<br> lassPartnerConfig{ //合作商户ID。
用签约支付宝账号登录后,在账户信息页面获取。
publicstaticfinalStringPARTNER="xxx"; //账户ID。
用签约支付宝账号登录后,在账户信息页面获取。
publicstaticfinalStringSELLER="xxx"; //商户(RSA)私钥,即rsa_private_key.pem中去掉首行,最后一行,空格和换行最后拼成一行的字符串 publicstaticfinalStringRSA_PRIVATE="xxx"; //支付宝(RSA)公钥用签约支付宝账号登录后,在密钥管理页面获取。
publicstaticfinalStringRSA_ALIPAY_PUBLIC="xxx"; //下面的配置告诉应用去assets目录下找安装包 publicstaticfinalStringALIPAY_PLUGIN_NAME="alipay_plugin223_0309.apk";}<br><br> AlixDemo中代码是最终的调用代码在onItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){}中,下面我们提取其中的核心代码。
<br> 6.提取核心调用代码<br> 在AlixDemo.java同目录下新建AlixPay.java,来提取AlixDemo.java的核心代码:<br> .tianxia.lib.baseworld.alipay;.URLEncoder;importjava.text.SimpleDateFormat;importjava.util.Date;.tianxia.lib.baseworld.R;importandroid.app.Activity;importandroid.app.ProgressDialog;importandroid.content.DialogInterface;importandroid.os.Handler;importandroid.os.Message;importandroid.view.KeyEvent;importandroid.widget.Toast;lassAlixPay{staticStringTAG="AlixPay";privateActivitymActivity;publicAlixPay(Activityactivity){mActivity=activity;}privateProgressDialogmProgress=null;//thehandlerusetoreceivethepayresult.privateHandlermHandler=newHandler(){publicvoidhandleMessage(Messagemsg){try{StringstrRet=(String)msg.obj;switch(msg.what){caseAlixId.RQF_PAY:{closeProgress();BaseHelper.log(TAG,strRet);try{Stringmemo="memo=";intimemoStart=strRet.indexOf("memo=");imemoStart+=memo.length();intimemoEnd=strRet.indexOf(";result=");memo=strRet.substring(imemoStart,imemoEnd);ResultCheckerresultChecker=newResultChecker(strRet);intretVal=resultChecker.checkSign();if(retVal==ResultChecker.RESULT_CHECK_SIGN_FAILED){BaseHelper.showDialog(mActivity,"提示",mActivity.getResources().getString(R.string.check_sign_failed),android.R.drawable.ic_dialog_alert);}else{BaseHelper.showDialog(mActivity,"提示",memo,R.drawable.infoicon);}}catch(Exceptione){e.printStackTrace();BaseHelper.showDialog(mActivity,"提示",strRet,R.drawable.infoicon);}}break;}super.handleMessage(msg);}catch(Exceptione){e.printStackTrace();}}};//closetheprogressbarvoidcloseProgress(){try{if(mProgress!=null){mProgress.dismiss();mProgress=null;}}catch(Exceptione){e.printStackTrace();}}publicvoidpay(){MobileSecurePayHelpermspHelper=newMobileSecurePayHelper(mActivity);booleanisMobile_spExist=mspHelper.detectMobile_sp();if(!isMobile_spExist)return;if(!checkInfo()){BaseHelper.showDialog(mActivity,"提示","缺少partner或者seller,",R.drawable.infoicon);return;}try{//preparetheorderinfo.StringorderInfo=getOrderInfo();StringsignType=getSignType();Stringstrsign=sign(signType,orderInfo);strsign=URLEncoder.encode(strsign);Stringinfo=orderInfo+"&sign="+"""+strsign+"""+"&"+getSignType();//startthepay.MobileSecurePayermsp=newMobileSecurePayer();booleanbRet=msp.pay(info,mHandler,AlixId.RQF_PAY,mActivity);if(bRet){//showtheprogressbartoindicatethatwehavestartedpaying.closeProgress();mProgress=BaseHelper.showProgress(mActivity,null,"正在支付",false,true);}else;}catch(Exceptionex){Toast.makeText(mActivity,R.string.remote_call_failed,Toast.LENGTH_SHORT).show();}}privatebooleancheckInfo(){Stringpartner=PartnerConfig.PARTNER;Stringseller=PartnerConfig.SELLER;if(partner==null||partner.length()<=0||seller==null||seller.length()<=0)returnfalse;returntrue;}//gettheselectedorderinfoforpay.StringgetOrderInfo(){StringstrOrderInfo="partner="+"""+PartnerConfig.PARTNER+""";strOrderInfo+="&";strOrderInfo+="seller="+"""+PartnerConfig.SELLER+""";strOrderInfo+="&";strOrderInfo+="out_trade_no="+"""+getOutTradeNo()+""";strOrderInfo+="&";//这笔交易价钱strOrderInfo+="subject="+"""+mActivity.getString(R.string.donate_subject)+""";strOrderInfo+="&";//这笔交易内容strOrderInfo+="body="+"""+mActivity.getString(R.string.donate_body)+""";strOrderInfo+="&";//这笔交易价钱strOrderInfo+="total_fee="+"""+"10.00"+""";strOrderInfo+="&";strOrderInfo+="notify_url="+"""+"/index.jsp"+""";returnstrOrderInfo;}//gettheout_trade_noforanorder.StringgetOutTradeNo(){SimpleDateFormatformat=newSimpleDateFormat("MMddHHmmss");Datedate=newDate();StringstrKey=format.format(date);java.util.Randomr=newjava.util.Random();strKey=strKey+r.nextInt();strKey=strKey.substring(0,15);returnstrKey;}//getthesigntypeweuse.StringgetSignType(){StringgetSignType="sign_type="+"""+"RSA"+""";returngetSignType;}//signtheorderinfo.Stringsign(StringsignType,Stringcontent){returnRsa.sign(content,PartnerConfig.RSA_PRIVATE);}//lassAlixOnCancelListenerimplementsDialogInterface.OnCancelListener{Activitymcontext;AlixOnCancelListener(Activitycontext){mcontext=context;}publicvoidonCancel(DialogInterfacedialog){mcontext.onKeyDown(KeyEvent.KEYCODE_BACK,null);}}}<br><br> 这个类的pay方法就是支付的方法,最简单的不设置的话,调用方法如下:<br> AlixPayalixPay=newAlixPay(SettingTabActivity.this);alixPay.pay();安全应用网关是怎么一回事啊?
我理解应用安全网关就是服务在应用层的网关,但我对此类网管的作用表示怀疑。
应用层的安全问题其实有很多,大部分问题的根本原因是软件开发语言本身存在的缺陷。
比如像Java的SQL注入、跨站、命令行注入。
其他语言的缓冲区溢出、指针回收、内存释放等等。
这些问题网关是很难解决的。
我认为比较彻底的解决方案是在开发的过程中避免这些漏洞和缺陷的引入。
建议你关注一下CheckMarx这类的应用安全工具,他可以扫描你写的源代码,找到开发过程中出现的漏洞或缺陷。
网关是什么意思
网关是一种充当转换重任的计算机系统或设备。
在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
同时,网关也可以提供过滤和安全功能。
大多数网关运行在OSI 7层协议的顶层——应用层。
常见的网关有以下几种:
·IBM主机网关:把LAN上工作站与IBM主机系统连接起来。
最早的网关模拟IBM主机的320终端,使LAN的工作站成为主机的终端。
复杂一点的网关允许PC机与主机之间传输文件,或者以客户机/服务器运行模式,允许PC机访问主机的数据库。
IBM的APPN协议提供了同层联网服务,使主机成为网络的一部分。
当前的趋势是主机也支持TCP/IP,直接与TCP/IP或通过Web服务器与用户连接起来,不再需要专门的网关。
·LAN网关:LAN网关提供LAN之间数据传送的通道。
通常居间的LAN因使用不同的协议,数据需要做些转换才能通过。
不少路由器提供以太网与FDDI的连接,可以充当此任。
另外,有提供AppleTalk与TCP/IP、IPX与TCP/IP等协议转换的网关。
·电子邮件网关:负责不同厂商应用软件之间邮件信息的转换,使用户在网上能共享不同的电子邮件应用程序所发出的信件。
常见的电子邮件网关把专用信息格式转换成X.400格式。
·因特网网关:在因特网中,以往的网关现在称为路由器。
网关现在是指一种系统,这种系统进行网络和应用协议的转换,使TCP/IP网和非TCP/IP网上的用户和应用可以相互通信。
网关也指应用程序之间的翻译设备。
代理服务器网关是一种防火墙,允许内部网的用户访问因特网,同时禁止因特网用户访问内部网。
功能齐全的防火墙提供高级的甄别、验证和代理功能,以防止黑客和攻击者进入内部系统。
什么叫网关?干什么的有什么用?
网关(Gateway)又叫协议转换器,是一种复杂的网络连接设备,可以支持不同协议之间的转换,实现不同协议网络之间的互连。
网关具有对不兼容的高层协议进行转换的能力,为了实现异构设备之间的通信,网关需要对不同的链路层、专用会话层、表示层和应用层协议进行翻译和转换。
所以说,网关是一个智能超群的路由器,一个智能超群的网桥,一个智能超群的中继器。
若要使两个完全不同的网络(异构网)连接在一起,一般使用网关,在中两个网络也要通过一台称为网关的计算机实现互联。
这台计算机能根据用户通信目标计算机的IP地址,决定是否将用户发出的信息送出本地网络,同时,它还将外界发送给属于本地网络计算机的信息接收过来,它是一个网络与另一个网络相联的通道。
为了使TCP/IP协议能够寻址,该通道被赋予一个IP地址,这个IP地址称为网关地址。
网关主要用于不同体系结构的网络或者局域网与主机系统的连接。
在互连设备中,它最为复杂,一般只能进行一对一的转换,或是少数几种特定应用协议的转换。
网关一般是一种软件产品。
目前,网关已成为网络上每个用户都能访问大型主机的通用工具。
另一种说法:
网关(Gateway)又称网间连接器、协议转换器。
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关的结构也和路由器类似,不同的是互连层。
网关既可以用于广域网互连,也可以用于局域网互连。
解决跨网关技术
现行的IPV4的IP地址是32位的,根据头几位再划分为A、B、C三类地址;但由于INTERNET的迅猛发展,IP资源日渐枯竭,可供分配的IP地越来越少,跟一日千里的INTERNET发展严重冲突,在IPV6还远未能全面升级的情况下,惟有以代理服务器的方式,实行内部网地址跟公网地址进行转化而实现接入INTERNET。
中介作用的代理服务器就是一个网关,也就是这个网关带给现阶段的多媒体通讯系统无尽的烦恼。
在IP资源可怜的情况下,惟有以网关甚至多层网关的方式接入宽带网,
因为多媒体通讯系统的协议如H.323等要进行业务的双方必须有一方有公网的IP地址,但是现在的宽带有几个用户能符合这个要求?MICOSOFT的NETMEETING等等多媒体通讯系统就是处于这种尴尬的位置;跨网关成为头疼的难题。
跨网关: 网络数据通过层层网关,受制于网关节点速度,网络速度大大降低。
跨网关技术基于底层网络协议,突破网关瓶颈,实现客户点对点交流。
目前在标准互联这边有两台香港云服务器产品,这不看到有通知到期提醒才关注到。平时我还是很少去登录这个服务商的,这个服务商最近一年的促销信息比较少,这个和他们的运营策略有关系。已经从开始的倾向低价和个人用户云服务器市场,开始转型到中高端个人和企业用户的独立服务器。在这篇文章中,有看到标准互联有推出襄阳电信高防服务器100GB防御。有三款促销方案我们有需要可以看看。我们看看几款方案配置。型号内存硬盘IP...
全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...
今天遇到一个网友,他之前一直在用阿里云虚拟主机,我们知道虚拟主机绑定域名是直接在面板上绑定的。这里由于他的网站项目流量比较大,虚拟主机是不够的,而且我看他虚拟主机已经有升级过。这里要说的是,用过阿里云虚拟主机的朋友可能会比较一下价格,实际上虚拟主机价格比云服务器还贵。所以,基于成本和性能的考虑,建议他选择云服务器。毕竟他的备案都接入在阿里云。这里在选择阿里云服务器后,他就蒙圈不知道如何绑定域名。这...
应用网关为你推荐
jmhjmh是谁宝应中学宝应初级中学有哪些视频压缩算法怎样把3个1G多,1个400多MB的视频文件压缩小?但又无损音质和画面清晰度的。国产操作系统下载国产操作系统要钱吗assemblyinfoLOL的 X、L、CS 是什么意思云盘网谁知道免费的网盘?中信银行理财宝中信银行香卡属于理财宝吗?点心os点心 OS 用户界面(UI)的设计理念是什么?挂qq网站那有挂QQ的网站啊视频服务器软件有没有集体视频的网站或者软件??
万网域名解析 互联网域名管理办法 美国独立服务器 监控宝 directadmin realvnc php探针 搜狗12306抢票助手 国内php空间 免费ftp站点 java空间 台湾谷歌地址 40g硬盘 圣诞促销 中国电信宽带测速网 raid10 跟踪路由命令 上海电信测速 腾讯网盘 广州主机托管 更多