微信支付额度为什么SDK为什么不

微信公众号支付错误:getBrandWCPayRequest:fail,没有此SDK或暂不支持此SDK模拟&&&&急需解决,谢谢。&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&iOS不用微信SDK唤起微信支付docx下载_爱问共享资料
iOS不用微信SDK唤起微信支付.docx
iOS不用微信SDK唤起微信支付.docx
iOS不用微信SDK唤起微信支付.docx
简介:本文档为《iOS不用微信SDK唤起微信支付docx》,可适用于领域,主题内容包含iOS不用微信SDK唤起微信支付点击上方CocoaChina关注即可免费学**iOS开发作者:TianBai原文链接:http:wwwjianshu符等。
侵权或盗版
*若权利人发现爱问平台上用户上传内容侵犯了其作品的信息网络传播权等合法权益时,请按照平台要求书面通知爱问!
赌博犯罪类
在此可输入您对该资料的评论~
添加成功至
资料评价:微信支付,支付宝支付,银联支付——三大支付
效果图: Markdown 由于用鲁大师去截屏获取gif,鲁大师一针一针绘制图片的时候应该没做好处理,导致跳转到相应的界面出现黑屏现象。在手机上正常跳转,无黑屏现象。大家不用担心这
由于用鲁大师去截屏获取gif,鲁大师一针一针绘制图片的时候应该没做好处理,导致跳转到相应的界面出现黑屏现象。在手机上正常跳转,无黑屏现象。大家不用担心这个
需要以公司名义,在支付宝,微信等平台上开通公司账户并且认证,如:支付过程中需要公司的帐号和商户号。
支付宝支付
如果碰到一些坑的话,请参考我之前写过的意一篇支付宝踩坑的文章:
android 支付宝的植入 《曾经踩过的坑》
首先支付宝申请并集成支付宝SDK 这里不再详细介绍
参考文档:
https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
获取订单信息(根据自己公司的实际情况:可以在服务端完成,也可以在本地完成)
price=12.5&num=12 //价格为12.5,数量为12
客户端拿这些订单信息向服务器后台进行请求,返回支付签名信息signInfo
app携带支付信息,调用支付接口请求支付宝客户端,从而调起支付界面
* 支付宝进行请求
* @param signInfo
private void payToOrderService(final String signInfo) {
new Thread() {
public void run() {
super.run();
PayTask payTask = new PayTask(MyScannerPayActivity.this);
// String result = payTask.pay(signInfo, true);
Map&String, String& result = payTask.payV2(signInfo, true);
Message message = mHandler.obtainMessage();
message.what = SDK_PAY_FLAG;
message.obj =
mHandler.sendMessage(message);
}.start();
用户操作,输入密码支付,支付成功;直接返回取消支付;出现错误,支付失败;进入支付界面,但输入密码支付,支付待确认;
支付宝客户端将支付结果告诉app客户端,商户服务器通知app服务器支付结果;
app客户端处理支付结果;
app服务器处理支付结果。
处理结果通知:
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case SDK_PAY_FLAG:
PayResult payResult =
payResult = new PayResult((Map&String, String&) msg.obj);
} catch (Exception e) {
e.printStackTrace();
对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
String resultInfo = payResult.getResult();// 同步返回需要验证的信息
String resultStatus = payResult.getResultStatus();
// 判断resultStatus 为9000则代表支付成功
if (TextUtils.equals(resultStatus, PAY_OK)) {
ActivityUtils.showActivity(MyScannerPayActivity.this, ScannerPaySuccessActivity.class);
} else if (TextUtils.equals(resultStatus, PAY_FAILED)) {//-------------------------&支付失败
// 该笔订单真实的支付结果,需要依赖服务端的异步通知。
Toast.makeText(MyScannerPayActivity.this, && + payResult.getMemo(), Toast.LENGTH_LONG).show();
} else if (TextUtils.equals(resultStatus, PAY_CANCLE)) {//--------------------------&交易取消
Toast.makeText(MyScannerPayActivity.this, && + payResult.getMemo(), Toast.LENGTH_LONG).show();
} else if (TextUtils.equals(resultStatus, PAY_NET_ERR)) {//-------------------------&网络出现错误
Toast.makeText(MyScannerPayActivity.this, && + payResult.getMemo(), Toast.LENGTH_LONG).show();
} else if (TextUtils.equals(resultStatus, PAY_WAIT_CONFIRM)) {//---------------------&交替等待
先看一下官方给我们的银联支付流程图:
大家不要被这张图片搞懵逼的了,其实很简单,这里我将其分为5小步。
第一步:根据官方文档选择符合自己的sdk
官方文档:
https://open.unionpay.com/ajweb/help/file/techFile?productId=3
第二步:将相对应的.so文件copy到 自己的工程里面去。
特别注意:
.so文件要放在src/main 目录下,和Java文件并行。还有就是把用到的权限复制到自己项目中)
第三步: 和支付宝一样,APP客户端带着这些订单号向服务器后台请求订单号orderNo
第四步:服务器后台接收到购买信息之后,将信息提交给银联后台,银联接收到后台之后给服务器返回tn号
第五步:开启调用银联支付。APP客户端带着这个流水号,也就是第三步中服务器返回的tn号,调用银联SDK所提供的方法
这个订单流水号为21位纯数字号
调用方法: UPPayAssistEx.startPay(this, null, null, tn, mMode);
结果返回:
处理银联手机支付控件返回的支付结果
调用银联支付后,返回app的时候用了,看返回结果传,成功,失败,或者是什么返回。
如图所示:
最后注意在调用:
/*****************************************************************
* mMode参数解释: &00& - 启动银联正式环境 &01& - 连接银联测试环境
*****************************************************************/
private final String mMode = &00&;
tn值就是上面第三后台给的tn,给到服务器那里,
这里我这边是通过后台请求下来的,关于mMode,看第一步骤,自己改一下就行了,00开发环境,01测试环境。但是要注意,这个只是个回调接口方法。
总感觉银联支付的SDK调用起来怪怪的,貌似回到了原始深林。
微信支付:
建议先参考我之前写的 Android 微信支付总结的一篇博文:
微信支付总结:
http://blog.csdn.net/androidstarjack/article/details/
接入流程图:
接入流程:
申请开发者账号
地址:https://open.weixin.qq.com/
进入管理中心,创建移动应用
申请支付能力
代码集成微信支付
代码集成微信支付
1.客户端代码得到用户购买的商品信息,将之传给自己公司app服务器,参数包含但不限于以下:
HashMap&String ,String& params = getHeadMap();
params.put(&appid&, appID);// 微信appid,选择性上传,服务器写死亦可
params.put(&money&, money);// 支付金额,单位:分
params.put(&goodName&, goodsName);// 商品名称
params.put(&productNum&, String.valueOf(12));// 商品的数量
- 2.app服务器调用微信&统一下单&接口,得到prePayId订单号并返回prePayId给手机客户端;
3.手机客户端使用prePayId及商品信息调起微信客户端进行支付;
3.1用户操作:输入密码进行支付;返回键取消支付;网络无连接支付失败等;
4.微信客户端回调支付结果给咱们的APP客户端;
5.微信服务器异步通知咱们公司app服务器支付结果(服务器的工作,与客户端无关)
相关的支付调用代码:
IWXAPI mWxApi = WXAPIFactory.createWXAPI(mContext, WX_APPID, true);
mWxApi.registerApp(WX_APPID);
* 请求app服务器得到的回调结果
public void onGet(JSONObject jsonObject) {
if (mWxApi != null) {
PayReq req = new PayReq();
req.appId = WX_APPID;// 微信开放平台审核通过的应用APPID
req.partnerId = jsonObject.getString(&partnerid&);// 微信支付分配的商户号
req.prepayId = jsonObject.getString(&prepayid&);// 预支付订单号,app服务器调用&统一下单&接口获取
req.nonceStr = jsonObject.getString(&noncestr&);// 随机字符串,不长于32位,服务器小哥会给咱生成
req.timeStamp = jsonObject.getString(&timestamp&);// 时间戳,app服务器小哥给出
req.packageValue = jsonObject.getString(&package&);// 固定值Sign=WXPay,可以直接写死,服务器返回的也是这个固定值
req.sign = jsonObject.getString(&sign&);// 签名,服务器小哥给出,他会根据:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3指导得到这个
} catch (JSONException e) {
e.printStackTrace();
mWxApi.sendReq(req);
Log.d(&发起微信支付申请&);
注意事项:
1.首先如果要使用微信支付的话
必须先到微信开放平台注册应用,具体地址为https://open.weixin.qq.com/
注册时需要填应用的包名和签名,注意这里的签名是App正式版的签名,可以找一个已上线的包或打一个正式包,使用微信提供的工具(签名工具下载地址为https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk)来获取,获取后填上即可。
待审核通过后,会得到一个AppID和AppSecret,AppID分享和支付都要用到,AppSecret没什么实际用途,此时微信分享能力是直接拥有的,支付能力还要额外申请,其中涉及到财务信息等
最好让公司财务部门去申请,申请成功后会拿到一个商户id,后面生成sign时会用到。
只有所有审核都通过后,才可调用微信支付功能,这点是前提。
2.微信分享和微信支付SDK是同一个架包,名为libammsdk.jar。
3.官方开发文档中有一处错误,需要注意下,如下图最后一行参数req应该为request,照搬代码的估计IDE也不会放过你,哈哈
4.测试微信支付时,务必对自己的App做正式签名,因为一开始就在微信平台注册过签名信息,微信SDK会做校验,只有这样才能调起微信分享和微信支付,直接debug版的包则绝对调不起来,这点务必注意,很多人是跌在这里了!当初做微信分享曾遇到过,所以会很留心,也因为如此,如果微信分享能调起来,微信支付不行,那就不要怀疑签名问题了。
5.还是签名,网上有人说要注意大小写,这点其实是不必的。在微信开放平台看到审核通过的App的签名是大写的,而用微信签名获取工具获得的则显示小写,这个没关系,不要贸然改动平台注册信息,不然又可能导致漫长的审核等待,上面也说了,微信分享如可以,那就不是签名问题。
6.来说下官方demo,这东西害人不浅啊!很多人参考其写法,如生成sign放在客户端啊,调支付的Activity添加intent-filter啊,最主要的还是签名问题。其实客户端逻辑很简单,直接上手集成即可,demo看看逻辑就行,照抄小心掉坑里。
7.网上有人说需要给调用支付的Activity配置如下intent-filter(见下图),可能也是被demo误导了
8.对于errCode返回-1,有人说清除微信缓存或切换账户就好了,这种解决方案治标不治本啊,根本不能算解决方案。虽然我没遇到能用这方法解决的问题,但目测是签名的问题,建议还得找到真正的问题所在。
9.生成sign时特别需要注意:
首先将key-value键值对拼成字符串,注意key都要小写,如appid,noncestr,package,partnerid,prepayid,timestamp,key,并且名字得按上述名称
我们遇到的错误就是因为partnerid写成了partnerId,prepayid写成了PrepayId,当然我们是在服务端写的,如果在客户端生成sign的话,也需要注意大小写及名称,详细信息请参考官方文档。
还有这里的key并非AppID或AppSectet,而是在商户平台设置的,官方描述为&key设置路径:微信商户平台(pay.weixin.qq.com)--&账户设置--&API安全--&密钥设置&。对于noncestr,申请prepayid和生成sign时两次需要用到,由于iOS同事看到相关文章说noncestr前后需要一致,因此这个随机字符串我们是设置成一样的了,这样做Android平台也是OK的,不过个人感觉这里可以不一致,由于这个逻辑在服务器端,我并没有验证,方便的同学可以验证下。
10.req.packageValue=&Sign=WXPay&,一般都是这样写死这个参数值。也有人说写成req.packageValue=&prepay_id=& + prepayid,经测试Android两种写法都是可以调起微信支付的,至少最新版本SDK是可以的,以后则不清楚,官方也建议写Sign=WXPay,据说iOS只支持这种写法。
Android集成微信支付的出现-1等错误需要注意的要点
1.微信支付和支付宝支付是现在APP常用的支付方式,但是真正接入过两种支付方式的猿友会很明显的感觉到微信支付真心比支付宝麻烦很多,会出现很多莫名其妙的错误,但是官方的文档却很难给出较好的解决方案.
2.前几天公司的APP需要支付功能然后也需要这个-1问题,简直感觉微信支付丧心病狂,这里总结下自己出现的问题和一些其他网友出现的问题做个总结
reso.errCode = -1 官方的描述: -1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
1.签名错误:
(1).签名的参数集合没有按照参数名ASCII码从小到大排序(字典序)
(2).签名的是时候漏了使用key,(key的由来可以看下面第三条的分析)
(3).签名的KEY错误. 这里用来签名的key是申请支付功能以后,微信给你的一个商户账号里面设置的.具体key设置路径:微信商户平台(pay.weixin.qq.com)&&账户设置&&API安全&&密钥设置
(4).签名后的key没有进行转化成大写或者其他例如前面的签名参数先排好序最后才加上key(key字段不参与ASCII码的大小排序,而是直接放到最后)
(5),还有一些其他的格式错误请参看官方文档的详细说明 微信官方的签名说明,请认真对比.
(6),签名问题的终极大招&&使用官方的签名认证工具一一对比.注:最好在连接生成的key和最终MD5之后的结果 在log下打印出来,可以方便查看出错的位置 接口调试工具
2.APPID错误
(1)APPID是在open.weixin.qq.com上创建的应用,可以通过 点击管理中心&&应用详情 来查看APPID
(2)创建APP时候上传的证书与现在使用的不一致.商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【 管理中心 && 修改应用 && 修改开发信息】里面
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package=&com.nmm.paydemo&。
应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,如图8.9所示,绿色串即应用签名。签名工具下载地址
对比查看应用签名是否一致,特别注意,一般上传都是使用release版本的key所以在测试的时候就需要使用签名版的apk,普通的debug版本key是不一致的
微信支付相关的demo地址:
https://github.com/androidstarjack/MyWxPayTest
(责任编辑:卓一哥)
------分隔线----------------------------
原文地址: Handling Scrolls with CoordinatorLayout 原文作者: CODEPATH 译...
终于到了 View 这一关卡了,之前也有实践过自定义 View: 圆弧刻...
前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本...
前天遇到了一个 NullPointerException,触发的代码类似下面这样:...
效果图如下; mvp.gif MVP mvp1.png Retrofit Retrofit是Square开发的一个...
本博文主要记录我学习 Java 反射(reflect)的一点心得,在了解反...客服:95017
APP端开发步骤
IOS开发要点说明
以下项目开发环境以Xcode6.0,运行环境为IOS7.0为例,说明其开发中需要的操作。
1、项目设置APPID
商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID。如图8.7标红位置所示。
2、注册APPID
商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下:
[WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];
3、调起支付
商户服务器生成支付订单,先调用【】生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:
PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @"";
request.prepayId= @"fc314aa427";
request.package = @"Sign=WXPay";
request.nonceStr= @"a462b76eed6e13c64b4fd1c";
request.timeStamp= @"";
request.sign= @"DD2B03AD8CB16E7A256";
[WXApi sendReq:request];
注意:该sign生成字段名列表见
4、支付结果回调
照微信SDK Sample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意 一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:
-(void)onResp:(BaseResp*)resp{
if ([respisKindOfClass:[PayRespclass]]){
PayResp*response=(PayResp*)
switch(response.errCode){
caseWXSuccess:
			//服务器端查询支付通知或查询API返回的结果再提示成功
			NSlog(@&支付成功&);
	default:
	NSlog(@&支付失败,retcode=%d&,resp.errCode);
回调中errCode值列表:
展示成功页面
可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
无需处理。发生场景:用户不支付了,点击取消,返回APP。
Android开发要点说明
1、后台设置
商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图8.8红框内所示。
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package="net.sourceforge.simcpux"。
应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,如图8.9所示,绿色串即应用签名。签名工具下载地址
2、注册APPID
商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
msgApi.registerApp("wxd930ea5d5a258f4f");
3、调起支付
商户服务器生成支付订单,先调用统一下单API(详见第7节)生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "";
request.prepayId= "fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "f";
request.timeStamp= "";
request.sign= "7FFECB600D810D2D8F28BC2811827B";
api.sendReq(request);
注意:该sign生成字段名列表见
4、支付结果回调
参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下:
publicvoidonResp(BaseRespresp){
	if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
		Log.d(TAG,&onPayFinish,errCode=&+resp.errCode);
		AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
		builder.setTitle(R.string.app_tip);
回调中errCode值列表:
展示成功页面
可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
无需处理。发生场景:用户不支付了,点击取消,返回APP。微信支付SDK-我们曾经踩过的坑 - 简书
微信支付SDK-我们曾经踩过的坑
1.微信app支付
微信的app支付适用于单个的app,比如公司是做app的,一共没有几个app,每个申请一个支付权限,然后单个app各自支付自己的业务,当然可以支付在同一个商户的账户上。
说实话,见过了不少SDK,但是没有见过比微信SDK更烂的api了,你需要自己在报名下创建wxapi文件夹,还要拷贝他们的activity到此目录下,然后呢?这样还没完,很多开发者会莫名其妙这么一个透明的activity拿到回调结果后该怎么处理,今天就来讲讲这个支付结果的处理方式。
JSONObject json = new JSONObject(payinfo);
PayReq req = new PayReq();//
String wxAppid = json.getString("appid");
req.appId = wxA
IWXAPI api= WXAPIFactory.createWXAPI(getActivity(), wxAppid);
api.registerApp(wxAppid);
req.partnerId = json.getString("partnerid");
req.prepayId = json.getString("prepayid");
req.nonceStr = json.getString("noncestr");
req.timeStamp = json.getString("timestamp");
req.packageValue = json.getString("package");
req.sign = json.getString("sign");
req.extData
= "app data"; // optional
api.sendReq(req);
以上代码为调用微信的最核心代码,从服务端拿回来微信支付所需要的数据,以此填入,最后提交请求。如果所有的数据都正确,并且包名和签名一致,那么恭喜你,微信可以支付了。
你就可以在&包名&/wxapi/WXPayEntryActivity中获取结果了,
Paste_Image.png
看onResp方法,在此方法中获取微信的返回code,自建广播,然后收取广播拿到结果。大家看到这里肯定会想,哟?这不是正常微信支付吗?有什么坑呢?
包名跟微信后台要保持一致。
签名要跟微信后台保持一致。
这尼玛代码简直不成模块啊。
Paste_Image.png
来看我们的微信支付代码,当然你拷贝WXPayEntryActivity这一步还真是免不了。
那么我们来讲讲代码中的pay方法,pay方法中包含了对服务端创建订单的请求,支付完成后查询支付支付结果的请求。但是你只需要传入回调收结果就好了,不需要关心任何的内部过程,这样才是真正的模块化,对吗?
整个pay的过程,其实是跳转至一个新的activity的过程,只不过此过程添加了参数,和回调,在新的activity中我们创建订单,获取支付信息,然后调用微信SDK进行支付。
2.微信H5支付
这种支付方式估计大家可能听过,但是你听过的可能跟我们的很不一样,H5支付微信同时支持微信内调起支付和微信外调起支付。
而今天我要说的就是微信外调起支付(以下简称H5外起支付)。
H5外起支付的优点:
1.签名无关性(整个支付,不需要你在微信后台填写app签名)
2.包名无关性(整个支付,不需要你去微信后台申请app)
大家试想,如果你是一个SDK开发者,你的SDK要提供给外面的任何人使用,那么别人每次都要通过你去微信那边申请app,然后申请app支付权限,然后呢?别人开发的时候每次还要用微信后台配置的签名。成千上万的开发者这么搞,你是不是就疯了?
对,这时候你就需要用这种方式了。
首先我们先了解下H5外起支付的原理。这个东西正常的使用场景是这样的,你有一个app,你用H5外起支付,那么你需要在webview中进行,服务端从微信那边下订单,拿到一个url,这个url在webview里面自动跳转,然后deeplink到微信。这样微信支付就调来了,这时候支付完成后,返回你的app webview中,点击“我已支付”,然后服务端查询支付结果,然后展现在网页中。
坑1. deeplink不能由客户端获取
微信H5外支付,之前是不能由客户端获取到deeplink的,整个过程需要在自有服务端进行,服务端进行各种请求之后获取到一个http协议的链接,里面包含微信位置的deeplink,取出来之后发送给客户端进行调起。
微信在之后进行了安全方面的认证,整个订单创建和支付必须获取到客户端请求服务器创建订单,服务器去微信那边下单时需要发送客户端的ip,拿到支付连接后回传给客户端,注意了,此时并拿不到deeplink,需要客户端在webview中进行跳转验证ip,才能获取到deeplink连接。然后坑出现了:
坑2. android4.4.4 webview发送referer不成功
请求代码.png
上面的图中,是我们正常webview发送referer的方式,然后在android4.4.4上这种方式,服务端是收不到referer字段的。那么android4.4.4上这种问题怎么解决呢?
翻阅了webview的所有api,我找到了一个方法 webview.loadDataWithBaseURL(baseUrl,htmlData)
这个方法是用来加载手机本地html的,baseUrl用来组织html中的相对路径,我们知道其实正常的请求,这个东西跟referer是一致的,那么referer是可以写在这个字段的,但是怎么去请求url这个链接呢,因为这是获取deeplink最关键的一步,是的,为何不加载一段js自动做个跳转呢?于是有了下面这段代码。
html中的js自动跳转拿到deeplink,然后webview自动跳转deeplink到微信支付。
至此问题完美解决!
Android程序员,PHP爱好者,Linux控。喜欢简单的事物,复杂的逻辑。
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
AFNetworking网络请求组件SDWebImage多个缩略图缓存组件FMDB本地数据库组件UICKeyChainStore存放用户账号密码组件Reachability监测网络状态DateTools友好化时间MBProgressHUD一款提示框第三方库MWPhotoBr...
发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注
09:45字数 61697阅读 3316评论 2喜欢 85 用到的组件 1、通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FM...
用到的组件1、通过CocoaPods安装项目名称项目信息AFNetworking网络请求组件FMDB本地数据库组件SDWebImage多个缩略图缓存组件UICKeyChainStore存放用户账号密码组件Reachability监测网络状态DateTools友好化时间MBP...
文丨南西 将半夜醒了的睡意 摊开,捧在手里 就能看到 你 奔波、冒险、倔强、孤独 冷漠、沉默、伤心、欢喜 和这个袒露欲望的城市一样 给我足够的自由 也给我足够的迷失
你送的青梳 在掉下几根寥寥白发后 断齿了 我的琴弦 在手中被拨弄音符 也凌乱了 既然离别的人没说再见 你也不用为没做出挽回而抱歉 握不住的沙就该朝风扬 管它迷住的下一个 是谁的眼 哪怕是自己的 不要心疼 为写诗而留下的白页纸 请用最充沛的感情 填好它 然后传达
于晚间晚上十一点十九分,读莫提默·J. 艾德勒、查尔斯·范多伦《如何阅读一本书》收获颇多。思以往阅读方式,犹如小学生。本书该精读。
在使用WKWebView进行页面加载时,直接链接可以加载,但是点击web界面的按钮却未走协议,刚开始以为是前端不支持WKWebView,后来发现是我们自己有的代理没实现要进入新界面WKWebView需要实现一个代理: //1.创建一个新的WebVeiw
1,宝贝在哪些方面磨蹭拖拉? 7岁男宝一年级,早上起床穿衣吃饭出门各种拖拉 2,您或者家里人是怎么应对孩子的磨蹭和拖拉的呢? 我和奶奶都是急脾气,奶奶更忍不住大声咋呼,但是成效甚微 3,对本次课程的期待是什么? 如何平衡孩子拖拉与自己的急脾气

我要回帖

更多关于 为什么要开通微信支付 的文章

 

随机推荐