の∞の‖v‖‖w‖‖r‖支 付 宝 客...

斫`I%&/m{JJ奏t`$@炝玩iG#)*eVe]f@添槛{锝鬓{锝骱;N'鬟?\fdl鑫J谏!?~|?"O<y篼籽腕lyhuqG'詹眦UQ:>瓦w颃a:gu]L鲱眍}蛮椒:>-&觎舫|vm狂W]沁W眠澶Y^>锸矧葸o?暹裣ir^-_{|W@XM爰f^枕t荭uQ:sKb琼dдn比.蜴nq番._烤(?J["g聍wm ,坪峙6?]f蜷GiSO]o拴t5粟l啐蛘S|8u$\x?踹}卓k~'缈l`$A罅房咯污物4+铑盱捋恭?vvw<苒7I5ty/ ,IQ骀/盔9颀~鼹_~_3怏/yI鳞N_~7怏^/筮32慵}尔辋神儆~%L葸击檗牵翥l晓}铥g~窟邛vonO藁疸_H|黥焐gO_咣=刿{x镉蔟菅廾{击v<=育┠黯1t3dlmas<h应Hu`{]嫱<羡 WY}:谤ミr纂?v/~醉磉83R海T~Y沅蔷{鲷头セ黝O^|~<J'e5}{Hq{}睡^=og5苯}S
禊7担綦]7+.S廨-Y2k*O?蚩Og9i应X^性n7?躏go磔粑ew d觳溉L哕b]z'eq8MfY~I-~tw锟跸蔬nvLz#f祜oOn 牾*9]d茳o?虔 膺y[=F t_s梓;|G其酗髁]U
$缳舡_'~郄-:2镍|泔_纂ly$导舣74Uk缅,w箍_托〓:b堤铸7疙冗8coCr[渍]1焊I峡废7vBw"bw瓤v[k&"(1Ip剞 2?vUr5猸o艉i骘WQdkR`~$B.邕o皇Y>┆1铨_gB+VE]凄K~N_}BtD铖]k b6;O线G 戬XnOv芍蝣鲽>g淇s
#蘩苯N9咪8>
'#CB杩[x?/c>迂y4T7
f1"a"
糍G骘J斜
便tN听| #vsX\"ty谯c尊宽/{BA,=?r#&d_Wタogv骥bsS豌傧Wう9?#僵沲Gu1速祷;i$n闲秀XwKJ+|?x鹩6=咻吣{^疸^b锺肮/bzW?w乜w?醴c?w箍/框o7况;湛_Gk款嵇?_o+_飨铎禳?跸K?舴?鳙g/K怎u镞/?U_o5?%走_蛳o魁/K饪狂稔齄/麸吭泷gXv教1u吐汗KPxYl'Y谍(6_涑慌燹{{;EJm蛰#C4+gSy}/}聱D份{>R/稃w/{~裎毋'o跨o']强@c皖慰W_Kh5_Os檫s\+J骈I5=og__k_=_<~:搓V0
o_k意俗}Zm{侩C`D_/fi[赀音og鱼*W;5mO_I??赭檫cFw-昕戴/款_OC缈/5{沱檫\宽Zwl[骁溥~箨{*
渠赀WN魁_趴/觐_k脒鳢砜耧卓?=_S杩By{怙岑S|h槛%走穹姣~龠+_u鼾_沸走w爝尹_ 蔬爝W⒚岿?:4:箫Si/MC除c?蠓3筮__ ?魁#蹇蚍c惋煽"2/o'眶鲞[oo旷/淇oK蘅_稆骘 J晓-锟3揽AK_虔_/#/矿_裤E暨__瘅唼Sm'怙服7 TN,vJ桀嘏Z{窜跤i蝼U$?畔"裱 鸭:涓w胺5神猝_h`'J+偃"E◆g尺.($bx 圹
o紫NjN烛酷8q芑aCDGi3>Kz>+H5pwo究QzZYrU5b今U]殆智?N?I_军蛘>c!Z宽S}U糅*iTi:辣 鳏继阝2旷[踩/~@!钸{ǐg??K旷o矿"
3逻?wM肟}线暹?
索)窈铑>诳h镝=/l为NQvvvD;诅5nU-|/萼$y闯'豸&q.'檫裤y掼[ou(诀鳍す勐aa`/J侩稔o毋:\ 邕b隈J&{鼹4]ID磕I_R"~者+骘胡`鬓?鬟]峥W3??3?o譬yP缃 CI0缈o?w{蜊窥(?箕タ/!甥例!c
跻:镍裤暨T{f量?w=?O!奈{眍 q[8M}~|霪?w寞|绯Zp|g3I|8扪_QJ<∧纂5nЮ
獗~芪-库_要=啉'觑_D亦?聍
qR{t?b\%8份碘菲渐Eo痰~蛋蠹gU都}_[蛇/=?_驴w+蚍腩"o纟蜮8=M披黢@7s用,_#}?7宽3唑擘僭?蠓劭啕5┊鬃诮+E轲o;_K75=t/筒骐lI_EVE阂v亏g呖Bbg 篷n傲w@Т\yz纂zemm
9动S< 镞耳~r珀zRO]GR%,J7#{C&O屐圪rV[.;Yey-JJ浑~恚e8潼F┛_`A/g~薯u x3UN谈 XoSol~{{)1遇逋}
Tv[眍sCi%8^鳙_癔&@=U~牙;yWK" `8d毅5Cx }U 井K|妓Tek呓KStQ
1享/5z痖}圣<{;yY鲰撙6=JuZ骧跎踬lxgL蒴吃% 莺s鬓XX俟b:{Rs┦LDPo弩w8:F5蹇坯e觚悖m^g窳jIF@龌u6邋宣;机c饔葺P~d究_库%{Tnkn]u伲{魁啁峻>&iW?^Szc瞧=AOw/黝扼br鳔Wwx箐佾W;_\W-犍房Sxs芗吁o竞~g;_绝>换惬UYegE7}j畜嘤阏蜮阍替>%t疥泯U圪现<禚^m&;o铱_0Y/(e#spnVH闰伲1Gr
O_&gwvv铨\M9={@ 箴藿吸舴s?G铋t-n浞宽挚鬟{x躜oxR^}{/~v&%$绚4螵恝大瘙{;瞅/u齄铱__o
婵晟纹挨L呜俗/77=+O牯E癯?+;;He机cow7+_脒O数k矿ow\- y?WpQoUQ膑<s骶衢y'~g[h蓉<wo锪蕨fN峡鲼+舆鲎绘}<?\|眶稆渠垮O军4Z扌醵砑Xv"/洞O{;黝<9脞搐]炒萋纣洌O7&c醮K ~]n芦(癖|u赉Y熏熟骈疸芳CS崴Vw
p S^_ lㄋOw~ E~饔O尺tw蜾wx鸹OO饔葵媒啐.>98_>n|E~96O'{噜w蜞w?}鸹?∽!9Y秉+9rW谆=)'yl(%ㄛ:.蠛}R诫Aa_"跌柁>兔串K--貘FJnN|PbV笔e良U玟VEn蜿XL可&[座牵菅p?趋S??=[D to=JpS[爸-pEHo芊D靠G$ e:H)sG魁奎m蹄h
鹧?魁颅`蒇历g[纶k_`

邦+^?蜻莉x}x~eTLC6qVpj=绪`{{橄}筝z:A虢=H{LYV{_魁?m宅nj鹜藜|筠
ox筠&}?疰7o^u炜I抗鹃挣F棍槲Bm伉?m强评_gL6S牮w箍uu铱驴w"5|#箭俘戬_跸'Cn@x'[n|o&Q*%*?镨E`_Oh@o/n $(渍! ?蝻-锋斧YC_Wly$^^淼D`丝?m快_~'>\№B <套?E?]b$?鹱C=N2m?K?+nb9肾Fy皲x秣jyu觖?xpw饔{1w_舆M七鹣5d-e笙判u等c亏O癔
w篁箕_w鹂m4n亮葺#=;Wy3P踢e&Co2b硕┇揽邕/[A肿M涯羔稔G跨_K}(1ㄢ[7%?OO谶v8蛴棚O击FO暨~<8_块{趴曲a阼i^2.y庞"+/迟V2"jzN1 eY]诫块o7B仳:5锂唉|O榍蘖Ow葩z柽{ncXdQ.瑟走E0W舣'黢f?饺薜t,f(蜷w8呦.芜^7Zb剥邕_鱿游I腕YV拷2F柽缃跨啭vco/菹zw2nN| 沉Y|汩g飞7o袱5?}?m6*b
3?穹?痃ns|$n&懋GO呸*诣2p7{唏7*%见wBw脲}\,.e B.5黍F/sv怀kw鏖W6衍~生?
脂{zW-K:/f%胚5li?遨%'葵Wd蘸oo_G渠亏_#m_H{黯镙y<颈a`;:+^}殇渔n|Y膺k_{)4}8骶!扉Q砜箫K榭鹧~篦S`罂K~A3蹄摘T7k喁_go3r呖w_/?{瑚鹩Oo;雄酤~w>_/酷/_'_7襁H_7胚m快_7>唼`p块祛祆茱'/{荥挎;腼悼屣'觑'{|箨媪瞌sa3$齄溽?醑m线蛇蝼襁togGq琨 锪7h>%嗑{匡W+?蠓g7u_醑缈/5u!= 鲻块A Gi疚荧甍惘[斥俗_姝_v锢醭祛镱=仫贻?湛_剡_嗽}_*?晖斫∞撺~酷I苜葺%w,o/箫;>"= 涂H![侩砹Z嗍ly宙弋4辑;6伴钝:Y7m地g\愠_'EY.v耄{藁}N3s^籀T;86#喏щ_:y.E钸/h!{霖硷y
v筚~#ql{殚m6)sM~L皴稔q:退rf膨獬woJDN咽臼殊bSZ屉uz嫡
zmn-2晗y~t:肄黯^?+鸹H.t7唼痦唧M?o'筵枨b蝴1'?6..Su<]藿埽ebr鳔Ww迳OW;/v6:kg?r]= 扫MZ_裣o
ogd)蓠?G蹩框?_>迮_15"C@/涅k怙W/{r
'~t髡;$骶hm"
D=赀/ 牍/G_K偶(uf第霪? 六'碚丕生4I=荠鐾OO(4^J膻锡nF:?/框O氵o_guLE5)s{R7=YН进}`迳!K揠霪裤_眶y何K些"tO~_4轾与5Y
O捃窿褒禁|?W炭
K暹_犊|lxz恩1[{唤ufak_}/{N觎2)OV浴k7摭g!p答拶儋埏-.}淇?wRuvm]]寇锼o_/c士O_M衔O}t;禁_cvX虞:{q庚63泣:ko瘼w?-x簌^?y鳅婉G`8}M$P^iw''罂o?聍肥DO'$m兆_7k膊wIv.byw)Nz铱wKO_鱿O汽僻c桴70v#C P葺9YE -~8~龀y;踞钧C骞_TYKOB3L诉M_dX揪鳢#K匡稞 _={ M y&9愫l入瓶/c_C擞蔬隹C渠励u@3p,y`=纂O缬v!p\掬7y1.匡z锔@4.~bE>!s1+咄)矗/ww鲼胡o/{Nu 惺Y[惘7WS觌@QaM}椒~I^u冠蓠}稂'挚o v`老骛(eM窨骘'i.zY岛Pp`A_G躏[麸'$t't4K土}踌爝襁绸O?孀
7钸趱"[y O强;/:P~F贵疝A/-就了bx块_w襁/鹂w{7y蒹
h;;]笙[醑_=亏5!:[~圹_W捭o`T a=佚t鬓 倪S?艨3e>搔oj蜊?O}哌/3每Bz=b0认0i煳捱暨ok?h偌*~PTN[o6no钕鲼>蓍:_跸}ù眶y^K轺MQ1蔸U7o41气z:u{(G+{轶铯gY垌mc|.g苈餍lvm<rK绠\v硗]?宵,,kR:vF
j噔rJ
褰euQ/梭*=/i簧2琳Ozz鳟袂_weOCk3福葵?;g4妊?7呔飨o?鸱[t舣m窥_}舴倪醑%蚁X希块盔W框洁e+_k}鼬?o_:F 寓(&9/K88;y7]P{?窘{PB%嵘*yD换 蚁`e敖\dos姥;?o姣KK筮赍L???魁M诉w蒇'铱鹎"U]殆z7lo}艋;Q8#QIO$+fk啐蕹尴鞒黧闪QT=0镝俎N霰筱8?RJ);@嗲lA绎k-zMNk^{,;琐铒!唿>/O殓强l>8{zJ g>}aL>Fgyjkx^|~<J潺Xc悚vD?钠犄 $ D&r
DbB锪;,:'G=g酾毁j觖3博4_aoK0ru^x?磉悦镅~Z7Tk*g支付宝钱包|支付宝钱包安卓版v8.3.0.092601 官方最新版 _下载之家
热门搜索:
您当前的位置: &
&支付宝钱包安卓版下载
本类软件推荐
支付宝钱包安卓版 v8.3.0.092601 官方最新版
软件大小:23.13MB
下载次数:4024
更新时间:
授权方式:免费版
语言:简体中文
运行环境:Android
相关软件:
& & &支付宝钱包是国内领先的移动支付平台,支持多款精品应用安全登录,更有余额宝理财神器,是数千万人信赖的贴身资产管家。用支付宝钱包,还信用卡、转账、付款、收款、充值、缴费、卡券管理,轻松搞定。支付宝钱包的特色  1、开放平台,支持精品应用安全登录;  2、支持余额宝,理财神器随身携带;  3、随时随地查询淘宝账单、账户余额、物流信息;  4、免费异地跨行转账,信用卡还款、充值、缴水电煤气费;  5、待办事项管理,还信用卡、付款、缴费、充值、卡券信息智能提醒。& &&支付宝钱包在支付这一基础功能上进行了创新,提供了声波支付、超级转账等高级服务。“付钱”服务可以通过向交易方手机发送一段声波识别对方并建立快速支付,这一方案特别适合面对面的交易。& &“转账”服务是可以向任何人(不论是否有支付宝账号)转账的“超级转账”,“扫码”服务是通过摄像头扫描二维码进行支付的方式。  支付宝方面表示,电子支付相对钱币具有综合优势,替代钱包是一大趋势,“我们希望有一天用户出门时只用带支付宝钱包就足够了。”  据支付宝最新统计数据显示:2012年无线支付总金额比去年增长546%,使用无线支付的人数也同比增长了223%,手机支付笔数占支付宝总体交易笔数的比例已经达到9.2%。430万支付宝用户的手机支付金额超过电脑支付。
支付宝钱包安卓版v8.3.0.092601 官方最新版 下载地址
按字母索引支付宝钱包是支付宝针对各个手机平台推出的客户端软件。可为您提供交易、付款、信用卡还款、生活缴费、买彩票、充话费等功能。
关键字:,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
非凡软件站(霏凡) 版权所有 闽ICP备号
Copyright(C) 1999- All Rights Reserved.手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能。人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验。谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能。&
1.下载官方架包和说明文档其实官方已经提供了安装指南,下载地址:
里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。
下载下来,我们主要是用到Android()目录下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,这两个文件是我们不能修改的支付宝api和安装包。
2. 商户签约现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步操作,oauth也是如此。打开/,登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。
我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。
3.密钥配置解压openssl-0.9.8k_WIN32(RSA密钥生成工具).zip,打开cmd,命令行进入openssl-0.9.8k_WIN32(RSA密钥生成工具)\bin目录下,(1).执行
openssl genrsa& -out rsa_private_key.pem 1024
生成rsa_private_key.pem文件。(2).再执行
openssl rsa& -in rsa_private_key.pem& -pubout -out rsa_public_key.pem
生成rsa_public_key.pem 文件。(3).在执行
openssl pkcs8& -topk8& -inform PEM& -in rsa_private_key.pem& -outform PEM& -nocrypt
将RSA私钥转换成 PKCS8 格式,去掉begin和end那两行,把里面的内容拷贝出来,保存到某个txt中,如rsa_private_pkcs8_key.txt中(我好像没用到这个)。打开rsa_public_key.pem,即商户的公钥,复制到一个新的TXT中,删除文件头&-----BEGIN PUBLIC KEY-----&与文件尾&-----END PUBLIC KEY-----&还有空格、换行,变成一行字符串并保存该 TXT 文件,然后在网站的&我的商家服务&切换卡下的右边点击&密钥管理&,然后有个"上传商户公钥(RSA)"项,选择上传刚才的TXT文件.好了,服务器配置OK,因为这一段之前没有截图,现在弄好了又不好截图,如果有不明白的地方请大家参考官方文档。&
错误提示 failure calling remote service&原因: 私钥没转PKCS8
4.引用jar和包含安装包& & (1).新建android工程;& & (2).copy上面说的alipay_plugin.jar到工程的libs目录下,并在java build path中通过Add External JARs找到并引用该jar;& & (3).copy上面说的alipay_plugin223_0309.apk安装包到assets目录下,后面配置路径用到。
如果libs和assets目录没有,手动建立者两个目录。
5.调用代码整理这里我们要严重的参考文档中AppDemo,我们建一个包com.tianxia.lib.baseworld.alipay,把AppDemo的com.alipay.android.appDemo4包下的源码全部copy到刚才我们自己的包下,还有res目录下的资源文件也合并到我们工程res下。其中AlixDemo.java,ProductListAdapter.java,Products.java是示例类,我们借鉴完后可以删除。PartnerConfig.java是配置类,配置商户的一些配置参数。其他的类是严重参考类,直接留下使用。PartnerConfig.java代码如下:
public&class&PartnerConfig {
&&&&public&static&final&String PARTNER = "xxx";
&&&&public&static&final&String SELLER = "xxx";
&&&&public&static&final&String RSA_PRIVATE = "xxx";
&&&&public&static&final&String RSA_ALIPAY_PUBLIC = "xxx";
&&&&public&static&final&String ALIPAY_PLUGIN_NAME ="alipay_plugin223_0309.apk";
AlixDemo中代码是最终的调用代码在onItemClick(AdapterView&?& arg0, View arg1, int arg2, long arg3) {}中,下面我们提取其中的核心代码。
6.提取核心调用代码在AlixDemo.java同目录下新建AlixPay.java,来提取AlixDemo.java的核心代码:
package&com.tianxia.lib.baseworld.
import&java.net.URLE
import&java.text.SimpleDateF
import&java.util.D
import&com.tianxia.lib.baseworld.R;
import&android.app.A
import&android.app.ProgressD
import&android.content.DialogI
import&android.os.H
import&android.os.M
import&android.view.KeyE
import&android.widget.T
public&class&AlixPay {
&&&&static&String TAG = "AlixPay";
&&&&private&Context&mC
&&&&public&AlixPay(Context mContext) {
&&&&&&&&mContext= mC
&&&&private&ProgressDialog mProgress = null;
&&&&private&Handler mHandler = new&Handler() {
&&&&&&&&public&void&handleMessage(Message msg) {
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&String strRet = (String) msg.
&&&&&&&&&&&&&&&&switch&(msg.what) {
&&&&&&&&&&&&&&&&case&AlixId.RQF_PAY: {
&&&&&&&&&&&&&&&&&&&&closeProgress();
&&&&&&&&&&&&&&&&&&&&BaseHelper.log(TAG, strRet);
&&&&&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&String memo = "memo=";
&&&&&&&&&&&&&&&&&&&&&&&&int&imemoStart = strRet.indexOf("memo=");
&&&&&&&&&&&&&&&&&&&&&&&&imemoStart += memo.length();
&&&&&&&&&&&&&&&&&&&&&&&&int&imemoEnd = strRet.indexOf(";result=");
&&&&&&&&&&&&&&&&&&&&&&&&memo = strRet.substring(imemoStart, imemoEnd);
&&&&&&&&&&&&&&&&&&&&&&&&ResultChecker resultChecker = new&ResultChecker(strRet);
&&&&&&&&&&&&&&&&&&&&&&&&int&retVal = resultChecker.checkSign();
&&&&&&&&&&&&&&&&&&&&&&&&if&(retVal == ResultChecker.RESULT_CHECK_SIGN_FAILED) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&BaseHelper.showDialog(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mContext,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"提示",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mActivity.getResources().getString(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&R.string.check_sign_failed),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&android.R.drawable.ic_dialog_alert);
&&&&&&&&&&&&&&&&&&&&&&&&} else&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&BaseHelper.showDialog(mActivity, "提示", memo,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&icon);
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&} catch&(Exception e) {
&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&&&&&&&&&BaseHelper.showDialog(mContext, "提示", strRet,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&icon);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&super.handleMessage(msg);
&&&&&&&&&&&&} catch&(Exception e) {
&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&}
&&&&void&closeProgress() {
&&&&&&&&try&{
&&&&&&&&&&&&if&(mProgress != null) {
&&&&&&&&&&&&&&&&mProgress.dismiss();
&&&&&&&&&&&&&&&&mProgress = null;
&&&&&&&&&&&&}
&&&&&&&&} catch&(Exception e) {
&&&&&&&&&&&&e.printStackTrace();
&&&&public&void&pay() {
&&&&&&&&MobileSecurePayHelper mspHelper = new&MobileSecurePayHelper(mContext);
&&&&&&&&boolean&isMobile_spExist = mspHelper.detectMobile_sp();
&&&&&&&&if&(!isMobile_spExist)
&&&&&&&&&&&&return;
&&&&&&&&if&(!checkInfo()) {
&&&&&&&&&&&&BaseHelper.showDialog(mContext, "提示",
&&&&&&&&&&&&&&&&&&&&"缺少partner或者seller,", icon);
&&&&&&&&&&&&return;
&&&&&&&&try&{
&&&&&&&&&&&&
&&&&&&&&&&&&String orderInfo = getOrderInfo();
&&&&&&&&&&&&String signType = getSignType();
&&&&&&&&&&&&String strsign = sign(signType, orderInfo);
&&&&&&&&&&&&strsign = URLEncoder.encode(strsign);
&&&&&&&&&&&&String info = orderInfo + "&sign="&+ "\""&+ strsign + "\""&+ "&"
&&&&&&&&&&&&&&&&&&&&+ getSignType();
&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&MobileSecurePayer msp = new&MobileSecurePayer();
&&&&&&&&&&&&boolean&bRet = msp.pay(info, mHandler, AlixId.RQF_PAY, mContext);
&&&&&&&&&&&&&
&&&&&&&&&&&&if&(bRet) {
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&closeProgress();
&&&&&&&&&&&&&&&&mProgress = BaseHelper.showProgress(mActivity, null, "正在支付", false,
&&&&&&&&&&&&&&&&&&&&&&&&true);
&&&&&&&&&&&&} else
&&&&&&&&&&&&&&&&;
&&&&&&&&} catch&(Exception ex) {
&&&&&&&&&&&&Toast.makeText(mActivity, R.string.remote_call_failed,
&&&&&&&&&&&&&&&&&&&&Toast.LENGTH_SHORT).show();
&&&&private&boolean&checkInfo() {
&&&&&&&&String partner = PartnerConfig.PARTNER;
&&&&&&&&String seller = PartnerConfig.SELLER;
&&&&&&&&if&(partner == null&|| partner.length() &= 0&|| seller == null
&&&&&&&&&&&&&&&&|| seller.length() &= 0)
&&&&&&&&&&&&return&false;
&&&&&&&&return&true;
&&&&String getOrderInfo() {
&&&&&&&&String strOrderInfo = "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="&+ "\""
&&&&&&&&&&&&&&&&+ ""&+ "\"";
&&&&&&&&return&strOrderI
&&&&String getOutTradeNo() {
&&&&&&&&SimpleDateFormat format = new&SimpleDateFormat("MMddHHmmss");
&&&&&&&&Date date = new&Date();
&&&&&&&&String strKey = format.format(date);
&&&&&&&&java.util.Random r = new&java.util.Random();
&&&&&&&&strKey = strKey + r.nextInt();
&&&&&&&&strKey = strKey.substring(0, 15);
&&&&&&&&return&strK
&&&&String getSignType() {
&&&&&&&&String getSignType = "sign_type="&+ "\""&+ "RSA"&+ "\"";
&&&&&&&&return&getSignT
&&&&String sign(String signType, String content) {
&&&&&&&&return&Rsa.sign(content, PartnerConfig.RSA_PRIVATE);
&&&&static&class&AlixOnCancelListener implements
&&&&&&&&&&&&DialogInterface.OnCancelListener {
&&&&&&&&AlixOnCancelListener(Activity context) {
&&&&&&&&&&&&mcontext =
&&&&&&&&public&void&onCancel(DialogInterface dialog) {
&&&&&&&&&&&&mcontext.onKeyDown(KeyEvent.KEYCODE_BACK, null);
这个类的pay方法就是支付的方法,最简单的不设置的话,调用方法如下:
AlixPay alixPay = new&AlixPay(SettingTabActivity.this);
alixPay.pay();
如果没有安装支付宝,它会提示你安装,如果已经安装,它直接让你选择付款:
这说明已经配置成功了。然后可以删掉那些示例java文件了:&AlixDemo.java,ProductListAdapter.java,Products.java。&你也可以通过调整参数来修改订单信息,如主题,价格等。另外在BaseHelper的94行:
dialog.setOnCancelListener( new&AlixDemo.AlixOnCancelListener( (Activity)context ) );
需要修改为:
dialog.setOnCancelListener( new&AlixPay.AlixOnCancelListener( (Activity)context ) );
如果不是下面这种情况不需要改,不然你按下面操作会卡在正在运行中
我在测试的时候,调用的activity是框在一个ActivityGroup里的(与tabhost类似,据说tabhost也有这个问题),导致MobileSecurePayer.java的pay方法中调用服务的两行代码:
mActivity.bindService(new&Intent(IAlixPay.class.getName()), mAlixPayConnection, Context.BIND_AUTO_CREATE);
mActivity.unbindService(mAlixPayConnection);
需要修改为:
mActivity.getApplicationContext().bindService(new&Intent(IAlixPay.class.getName()), mAlixPayConnection, Context.BIND_AUTO_CREATE);
mActivity.getApplicationContext().unbindService(mAlixPayConnection);
不然会报错java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.am.ActivityRecord$Token...
8.小结支付宝的集成比我想象的要复杂一些,比较麻烦,首先需要审核,然后代码需要提取,所以写出来与大家分享。&在做集成配置的时候,一定要仔细认真,一个地方出错,可能要导致后面查错查很长时间。因为本人是先集成成功后才写的这篇文章,难免会漏掉一些重要的细节或者步骤,如有不对,请留言指正。
阅读(...) 评论()

我要回帖

 

随机推荐