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等等多媒体通讯系统就是处于这种尴尬的位置;跨网关成为头疼的难题。
跨网关: 网络数据通过层层网关,受制于网关节点速度,网络速度大大降低。
跨网关技术基于底层网络协议,突破网关瓶颈,实现客户点对点交流。
易探云怎么样?易探云香港云服务器比较有优势,他家香港BGP+CN2口碑不错,速度也很稳定。尤其是今年他们动作很大,推出的香港云服务器有4个可用区价格低至18元起,试用过一个月的用户基本会续费,如果年付的话还可以享受8.5折或秒杀价格。今天,云服务器网(yuntue.com)小编推荐一下易探云国内云服务器优惠活动,北京和深圳这二个机房的云服务器2核2G5M带宽低至330.66元/年,还有高配云服务器...
HostKvm,我们很多人都算是比较熟悉的国人服务商,旗下也有多个品牌,差异化多占位策略营销的,商家是一个创建于2013年的品牌,有提供中国香港、美国、日本、新加坡区域虚拟化服务器业务,所有业务均对中国大陆地区线路优化,已经如果做海外线路的话,竞争力不够。今天有看到HostKvm夏季优惠发布,主要针对香港国际和韩国VPS提供7折优惠,折后最低月付5.95美元,其他机房VPS依然是全场8折。第一、夏...
virmach怎么样?virmach家这几年非常火,从商家的黑五闪购开始,以超低的价格吸引了大批的国人客户,而且商家的机器还是非常稳定的,站长手里的4.75刀年付已经用了两年了,非常稳定,不过商家到国内的线路一般,目前商家新上了夏季优惠促销,价格低到发指,年付7.2美元起,商家反馈将在9月开始更换AMD+NVMe平台,这个消息从年初就有了,不过一直没有更换,目前这个时间也不确定是否准确。点击进入:...
应用网关为你推荐
换脸软件有什么p图软件可以换脸李智慧韩国艺人韩智慧最近的情况?y码男生衣服M L XL分别是什么码?自定义表情手机qq添加的自定义表情怎么分组awv如何把普通电影转换成AWVjs后退多级页面间的后退如何实现(js方法)部署工具win10 评估和部署工具包有什么用什么是生态系统生态系统的结构是什么微软操作系统下载怎样在微软官网下载windows7 64位旗舰版超级播放器那种电影网站就是那种不需要下载播放器可以直接看
网站域名空间 如何注册域名 济南域名注册 高防服务器租用 openv 独享100m t楼 外贸主机 表单样式 圣诞节促销 怎样建立邮箱 789电视 美国网站服务器 德隆中文网 php服务器 免费网络空间 cdn服务 hdchina cpu使用率过高怎么办 游戏服务器 更多