Android支付功能,只想在webview 截取整个页面里面完成整个支付,没做过的菜鸟别回答

我原本不想写这个的,但是看到网上,都是胡乱的写,我也是醉了,对于网上找到的 全是过时的,无语中,还有一小子,去官网下的源码,放到csdn里面,冲大神,就这个网址() 另外一哥们还算靠谱,就是这个网址了:),,就是有点啰嗦。 但是里面的夹包,不是最新的。最新的夹包是: 还有就是android 4.0
之后夹包是不用导入的,他会自动导入应用中的,你只要复制进来就ok了。那哥们说过的,我就不罗嗦,下面就是重点了:上面两个里面payDemoActivity
是重点。 里面是主要的`[code]
public void pay(View v) {
String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01");
这个里面就是我们传的产品内容。怎么传值,我就不多说了,
// 对订单做RSA 签名
String sign = sign(orderInfo);
// 仅需对sign 做URL编码
sign = URLEncoder.encode(sign, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
// 完整的符合支付宝参数规范的订单信息
final String payInfo = orderInfo + "&sign=\"" + sign + "\"&"
+ getSignType();
Runnable payRunnable = new Runnable() {
public void run() {
// 构造PayTask 对象
PayTask alipay = new PayTask(PayDemoActivity.this);
// 调用支付接口,获取支付结果
String result = alipay.pay(payInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
mHandler.sendMessage(msg);
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签String resultInfo = payResult.getResult();` 还有就是,你的点击事件,用handle
做的监听:
case SDK_PAY_FLAG: { PayResult payResult = new PayResult((String) msg.obj); “`[code]
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(PayDemoActivity.this, "支付成功",
Toast.LENGTH_SHORT).show();
// 判断resultStatus 为非“9000”则代表可能支付失败
// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(PayDemoActivity.this, "支付结果确认中",
Toast.LENGTH_SHORT).show();
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
Toast.makeText(PayDemoActivity.this, "支付失败",
Toast.LENGTH_SHORT).show();
case SDK_CHECK_FLAG: {
Toast.makeText(PayDemoActivity.this, "检查结果为:" + msg.obj,
Toast.LENGTH_SHORT).show();
}所以就是没什么重点,但是我在看支付的时候看到了一个网站:
这个是秒支付,封装的超级好的,就是有一点; 要钱的,那就算了,说重点,就是怎么配置;
这个事秒支付的技术文档;里面有的我就不多说,说重点,我开始看了半天,都是配置,就是没说,支付宝的PID
,KEY.放哪,找了一会,终于找到了,放到人家的服务器上,我在想,安全吗? 那我就不多说了,好是好,就是用着不放心,你还收费,无语ing
如果您想留下此文,您可以将其发送至您的邮箱(将同时以邮件内容&PDF形式发送)
相关文章推荐
(Ctrl+Enter提交) &&
已有0人在此发表见解
&在& 16:27收藏到了
&&在信息爆炸的时代,您的知识需要整理,沉淀,积累!Lai18为您提供一个简单实用的文章整理收藏工具,在这里您可以收藏对您有用的技术文章,自由分门别类,在整理的过程中,用心梳理自己的知识!相信,用不了多久,您收藏整理的文章将是您一生的知识宝库!
· 蜀ICP备号-11437人阅读
android(42)
将webview设置为背景透明后出现闪屏:
webview.setbackground(Color.TRANSPARENT);
关闭硬件加速就可以解决问题了:
webview.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
xml文件中可以这样:
android:layerType=&software&
有时候这样设置还会产生一些问题,我遇到的是文字显示不出来。不知道为什么。
后来改成了
webview.setbackground(0x);
只这一句话,同样达到了透明效果,并且不会有什么问题
今天又发现一个问题,上面这种设置对于4.1及以上的系统有效,其他的没有效果。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:43156次
排名:千里之外
原创:29篇
转载:17篇
评论:20条
(1)(1)(1)(2)(3)(1)(1)(5)(3)(1)(7)(1)(10)(3)(2)(4)09:47 提问
Android webview里调用 支付宝接口
做的程序是Android框架嵌套js 用webview来加载这些页面,现在在webview里面点击支付时的时候,
会跳转到一个PC版的页面进行支付,这个功能在PC上是正常的。
现在嵌套在Android里的时候 ,经常出现无法登陆,扫码支付后不能返回的现象。
所以决定用支付宝的接口。
就是这种介入方式,里面有个方法接口fetchOrderInfoFromH5PayUrl
从拦截的URL中获取支付请求相关信息,封装成新的订单信息字符串作为返回值。如果该URL不是有效的支付宝支付URL,则返回空字符串。
但是现在这个我总是不能拦截到自己支付地址,还是会跳转到PC版的页面,想要的结果是可以直接底部弹出来支付框(有安装支付宝APP的时候),没有装的话是转到H5的页面中。
这个接入需要申请什么权限吗,我看官方demo里这种方式没有用到,
看到的朋友
可以指点一下吗,第一次集成支付宝 非常迷茫,项目快上线了,这个功能以及纠缠我好多天了,在线等
按赞数排序
webview会有权限问题,既然你是android程序,那么最好用native接入方式,接起来也很简单,而且基本能保证运行正常。体验也好。
可以通过JS和Android的通信,来吧网页的请求转化为Android应用的请求,这样就能拉起手机上的支付宝APP了。
二楼你好,我想请问一下:我现在就是用native的方式去接入,当页面跳转到PC版网页的时候
如果我安装的有支付宝APP
现在确实会跳转到APP里面支付,
但是有两个问题,
1.支付完成后不会自己跳转,手动返回后确实可以在webview里面接受到返回信息 然后页面进行正常跳转,怎么才可以自动跳
2.当手机上没有装支付宝APP的时候,它只是跳转到SDK里面的一个Activity里的一个webview 然后载入的还是PC版页面
1.支付完成后不会自己跳转,手动返回后确实可以在webview里面接受到返回信息 然后页面进行正常跳转,怎么才可以自动跳
2.当手机上没有装支付宝APP的时候,它只是跳转到SDK里面的一个Activity里的一个webview 然后载入的还是PC版页面
第一个问题,应该是设置问题,支付宝是可以自动跳转到调用者的。
第二个问题,对于没有安装支付宝app的情况,这是正常表现,它只能调用网页了。我不知道你是不是说不应该弹PC网页而是移动端网页。
如果你是这个意思,那么你应该看一下你的webview请求参数是不是让它作为移动端的浏览器标识。
感谢zouyongjin
你的回答,还想再问一下 第二个问题 你说的“webview请求参数是不是让它作为移动端的浏览器标识”
不太明白是什么意思,网上 查了是这个东西吗User-Agent?
意思就是让网站识别浏览器
然后把PC版的返回成手机版的?那么该怎么设置呢,网上查的都看不太明白
比如找到的这个:
// 修改ua使得web端正确判断
String ua = webview.getSettings().getUserAgentString();
webview.getSettings().setUserAgentString(ua+"; HFWSH /"+appversion);
后面的"; HFWSH /"+appversion
是干嘛用的呢
webview.getSettings().setUserAgentString(ua+"; HFWSH /"+appversion);
这个就是在默认的user-agent字符串后面添加一个尾部标示而已。HFWSH /这个只是浏览器的标识。可以理解为版本代号。
不同的android系统可能webview的UA也不一样,比如android4.4就改了webview,性能有很大提升,同事UA也变更了。你可以自己动手试试看取出来的UA值是什么。
其他相似问题2374人阅读
项目中,需要在App中使用webview通过访问url,最终调起微信支付。
基于上述的实现,是因为安卓App可以使用intent来调用URI数据,从而实现该app不能完成的功能。例如打开网页,跳转到电话拨打页面,或者是跳转到微信支付。
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
如果要实现在一个App打开另一个App &的页面 如 BActivity,该如何做呢
在BActivity manifest.xml &配置如下
&intent-filter&
&data android:scheme=&myapp&/&
&action android:name=&android.intent.action.VIEW&/&
&category android:name=&android.intent.category.DEFAULT&/&
&category android:name=&android.intent.category.BROWSABLE&/&
&/intent-filter&跳转如下,配置成你需要的Uri。Uri中可传递一些参数,在目标页面进行解析。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3980次
排名:千里之外
原创:14篇
(1)(5)(2)(2)(2)(3)Android&集成支付宝网页支付webview不能加载触摸版问题
项目中要能集成支付宝支付功能,(集成步骤就不说了支付宝集成文档很全)。
说一下问题,网页支付流程都完成后跳转到支付宝的收银台去支付。如下图:
但看大众点评等支付时却发现界面不一样,高级版收银台如下图:
楼主发现通过手机浏览器访问的就是高级收银台,如果用webview访问就是标准版。没办法楼去去上下了一个叫sett-browser的android浏览器项目看了一下他的源码。发现了解决问题。
原来支付宝要往手机里面写一些cookie。如果不成功就显示标准版。
开启cookie可写大功告成:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 ios webview 跳支付宝 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信