webapp在微信中支付问题 5C

用户在微信打开浏览器访问网站,进行支付宝或者微信H5支付,页面提示跳转到浏览器操作。
此后,跳转到浏览器后用户就是非登录状态,还得重新登录支付,这该怎么解决?

2

9个回答

用户注册的时候和微信APPID绑定下,跳到H5的时候,获取下appid参数自动登录

3

都知道支付宝支付在不同环境下分好多种,本文介绍的是<手机网页即时到账接口-手机网页即时到账接口>如何接入。至于如何开通支付宝,审核等步骤,请查阅其他文档。本文使用的是其中JAVA版接入。

由于微信“封杀”了支付宝支付,支付宝给出了<关于微信公众平台无法使用支付宝收付款的解决方案说明>解决方案,本文介绍如何接入。

文档中,主要有用的是2个文件pay.html、ap.js.另外两个demo_get.htm,demo_post.htm是测试用例。

接入参考demo_get.htm,主要遇到的问题:

1.代码pay.htm有小错误
2.引入路径问题
3.如何引入ap.js和参数加引号
4.URLEncoder

解决:

1.代码pay.htm有错:

第四行修改为

2.引入路径问题:

如果是使用的JAVA版接入微信,且使用JSP方式生成自动submit的表单内容。那么请在JSP存放的路径拷贝进去pay.html、ap.js两个文件。

3.如何引入ap.js和参数加引号:

如何引入ap.js

[java] view plain copy
/**
* 建立请求,以表单HTML形式构造(默认)
* @paramALIPAY_GATEWAY_NEW 支付宝网关地址
* @param sParaTemp 请求参数数组
* @param strMethod 提交方式。两个值可选:post、get
* @param strButtonName 确认按钮显示文字
* @return 提交表单HTML文本
*/

public static String buildRequest(String ALIPAY_GATEWAY_NEW, Map sParaTemp, String strMethod, String strButtonName) {

//待请求参数数组

Map sPara = buildRequestPara(sParaTemp);

List keys = new ArrayList(sPara.keySet());

    StringBuffer sbHtml = new StringBuffer();  
    //添加微信 兼容性  
    sbHtml.append("<script type='text/javascript' src='ap.js'></script>");  
    sbHtml.append("<form id=\"alipaysubmit\" name=\"alipaysubmit\" action=\"" + ALIPAY_GATEWAY_NEW  
                  + "_input_charset=" + AlipayConfig.input_charset + "\" method=\"" + strMethod  
                  + "\">");  

    for (int i = 0; i < keys.size(); i++) {  
        String name = (String) keys.get(i);  
        String value = (String) sPara.get(name);  

        sbHtml.append("<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\"/>");  
    }  

    //submit按钮控件请不要含有name属性  
    sbHtml.append("<input type=\"submit\" value=\"" + strButtonName + "\" style=\"display:none;\" onclick=\"sendTo()\"></form>");  

    String prestr = createLinkStr(sPara);  
    String str = ALIPAY_GATEWAY_NEW + prestr;  
    sbHtml.append("<script>function sendTo(){"  
            + "_AP.pay(\""+ str +"\");"  
            + "};sendTo();</script>");  

/* sbHtml.append("");
sbHtml.append("document.forms[&#39;alipaysubmit&#39;].submit();");*/

return sbHtml.toString();

}

public static String createLinkStr(Map<String, String> params) {  

    List<String> keys = new ArrayList<String>(params.keySet());  
    Collections.sort(keys);  

    String prestr = "";  

    for (int i = 0; i < keys.size(); i++) {  
        String key = keys.get(i);  
        String value = params.get(key);  
        try {  
            value = URLEncoder.encode(value, AlipayConfig.input_charset);  
        } catch (UnsupportedEncodingException e) {  
        }  
        if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符  
            prestr = prestr + key + "=" + value;  
        } else {  
            prestr = prestr + key + "=" + value + "&";  
        }  
    }  

    return prestr;  
}  

代码片段 + "_AP.pay(\""+ str +"\");" 中 str 变量两侧要有 \" ,不光是str变量要是字符串,还要用引号包起来。
4.URLEncoder
createLinkStr方法是拼装字符串的作用,拼装的同时,要为每个value都进行URLEncoder.encode

1

使用的iframe,腾讯并没有屏蔽数据传输层。只是屏蔽了当前URL。

0

用户跳转前把appId及登录标识 传进页面的变量,跳转后根据appid判定是否登录

0

可以去找下集成好的支付平台

0

跳转前把appId及登录标识 传进页面的变量,跳转后根据appid判定是否登录

0

微信服务器不会向客户端发送cookie,所以session会失效,你的登录就会出问题,所以session和微信支付不能直接用session来做,要处理一下

0

我在微信里面的H5中实现支付宝支付的方式如下:

1、在H5界面提供了支付宝支付的方式
2、当使用支付宝支付,点击提交的时候,使用支付宝提供的pay.htm和ap.js进行跳转(get方式)
3、get方式是自己拼接的url

_AP.pay(ApiConf.server +
                                "OnlinePayment/onlinePay?token=" + ApiConf.token +
                                "&payType=" + payType +
                                "&totalAmount=" + totalAmount +
                                "&body=" + body);

4、在后台通过token校验以及是哪个用户进行支付
5、调用支付宝SDK生成支付表单
6、通过浏览器或者支付宝App支付
7、回调进入支付成功的界面(失去连接),需要重新登录

0

不是应该接支付宝或者微信支付的接口,直接打开app支付吗?为什么要跳到浏览器?你这个想法有问题呀

-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信中H5支付无法直接完成的解决方案
目前,网络移动支付无处不在,极大地方便了我们的生活。特别是微信支付,应用极广,很受大众欢迎。然而,对于拥有H5移动商城的商家来说,微信H5支付在微信端中是无法完成支付的。这是令人非常蛋疼的事。那么要怎么解决这个问题呢?   解决方案:http://demo.liuy88.cn/wxjum_bf011011.html 1、你需要准备2个相同的页面。一个在内一个在外 2、在微信中打开支付页...
微信使用支付宝的思路。。。
在阿里官网中有解决微信公众号中调用支付宝手机网站支付的方案,就是使用官方提供的ap.js和pay.html,当然,阿里也给了get和post相关的例子:      我们以demo_post.htm为例:      可以看到script中处理了各个参数,但是这种方式后端不能使用平台提供的SDK完成签名,因为SDK签名会生成form表单,因此各个参数需要自己写代码完成拼接和签名。需要注意的是:手动签...
微信中不能使用支付宝付款的解决方法
支付宝客户中心接到多位商户来电,从2015年2月2日下午开始,商户通过微信公众平台开设的店铺无法使用支付宝收付款,页面提示为“阿里巴巴屏蔽了来自微信的浏览器请求”。据我们了解: 1、支付宝为商户包括商户的微信店铺提供的支付服务昨天没有任何变化。 2、微信店铺使用支付宝接口收付款,与支付宝的其中一个商家淘宝网无任何直接关系。 3、消费者如果希望继续通过支付宝完成付款,可以打开独立的手机浏览器,把链接复制到手机浏览器中打开,以继续完成支付。 4、商户和消费者对于无法使用支付宝收付款一事如有疑问,可以联系微信方面咨询。 如需继续使用支付宝在微信公众平台收付款,请下载最新的技术解决方案进行改造,
web app中支付问题
前阶段我做的h5支付(微信/支付宝),各个功能都弄好了,可以使用了,但是,我们总监让我把这个h5支付移植到我们前阶段做的web app中,这一下子,让我懵逼了。带着懵逼的心情,苦逼的看代码吧。在进行支付的时候,本来就分的有app支付的sdk,现在一下子把h5支付的sdk,弄到app里面,这不是很扯吗? 然而还是要干活滴,好了,问题来了,开始分析问题:解决app支付?有两种方式。 第一种:去官网
微信浏览器中支付宝wap支付和微信JSAPI公众号支付
手机浏览器只有支付宝wap支付,微信浏览器中出现支付宝wap支付和微信JSAPI公众号支付,其中支付宝wap在线支付没有在新窗口打开(兼容大部分手机),Thinkphp3.2公众号支付
支付宝H5支付(可嵌入到微信中使用)
1,百度下载支付宝H5支付宝demo (PHP) ,放入vendor目录 如: 2,不需要require_once   composer 命名空间自动加载    具体如下 打开vendor下面的composer,找到installed.json文件 接下来很关键的一步,   这是一个加载文件的代码文件,简单一点就是自动化加载就用到他 我们把”name”: “alipaywap”,替换为...
微信中调起支付宝支付
微信中调用支付宝支付,首先我们知道微信是不能直接调用支付宝的,所以我们需要使用一个中间页提示用户在浏览器中打开,然后进行网页支付或打开app支付。以下为详细唤起支付宝的步骤、业务代码以及相关页面图。 如有问题欢迎评论留言,看到定回复哦^_^\(^o^)/~ 一、微信中唤起支付宝,有几个步骤: 1、中间页引导用户在浏览器中打开去唤起支付宝。 2、浏览器中打开支付宝或app中打开支付宝。 3...
解决微信中无法使用支付宝付款和弹出“长按地址在浏览器中打开”的解决办法
解决微信中无法支付宝支付问题,和弹出长按地址在浏览器中打开
微信内使用支付宝支付
1.支付宝手机网站支付部分代码: if (!empty($oid)&amp;amp;amp;&amp;amp;amp; trim($oid)!=&amp;quot;&amp;quot;){ //商户订单号,商户网站订单系统中唯一订单号,必填 $out_trade_no = $oid; //订单名称,必填 $subject = &amp;quot;好多羊牧场充值&amp;quot;; ...
vue-解决在微信内置浏览器中调用支付宝支付的问题
我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转页面 第一步: payment: 是选择支付页面,pay-mask是用于在微信内置浏览器中调用支付宝的中间页 payment主要代码: let ua = window.navi...
在微信中如何接入支付宝的提示打开浏览器样式:方法一官网方法
由于微信“封杀”了支付宝支付,支付宝给出了<关于微信公众平台无法使用支付宝收付款的解决方案说明>解决方案,本文介绍接入中碰到一些小问题。
ectouch官网正版自己商城都在用,微信支付、支付宝都可以
都是一键傻瓜式操作,自己都用5年了,今天分享给大家@
支付接口 - 微信内H5调用支付接口
官方文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&amp;amp;index=6 &amp;lt;!doctype html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;微信公
微信内支付 php sdk
微信内网页支付 sdk  微信内网页支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付
微信公众号中调用支付宝手机网站支付
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在阿里官网中有解决微信公众号中调用支付宝手机网站支付的方案,就是使用官方提供的ap.js和pay.html,当然,阿里也给了get和post相关的例子: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我们以demo_post.htm为例: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;可以看到script中处理了各个参数,但是这种方式...
web与ios在微信中调起APP
这里明确说明后台必须支持https  否则只是ios个web也搞不出个什么,有了协议后会比较方便 安卓需不需要https都无所谓。
wap端微信h5支付,用于非微信浏览器
wap端微信h5支付,用于非微信浏览器
微信中请在浏览器打开
由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时点击下载按钮没反应,我想到的是做一个提示用户在浏览器中打开下载。 其实原来很简单,就是判断当前是在微信内置浏览器中,然后将默认隐藏的提示层显示出来。 下面放一下安卓和IOS的效果图还是有区别的。 作者联系方式球球:3438284596 欢迎各位大佬一起合作交流...
H5APP WEB 支付开发 (银联 微信 支付宝)流程
这里采用ionic+angular进行前台开发 ssh+jpay做后台支付接口银联:配置好参数 接口采用JPAY 他会自动生成HTML并提交表单到银联 app只需用iframe套用就行 paylog为记录订单过程数据controller/** * app银联支付 * @param payLogId * @param response */ @RequestMapping(value = &quot;...
微擎二次开发--小程序之webview外链支付
说实话这个借口就说就是不支持除小程序外的支付接口,虽然网上是有解决方法,但是在微擎这,脑子突然堵了,第一因为底层代码不熟,所以不知哪里改哪里,最后硬着头皮试了下web-view进到自己公众号应用里面去,然后支付就出现这个东西 在出现这个东西 后来全局找了下那个file//貌似是 又或者是  我上网查了这个是本地文件传输协议,就是想在win的资源管理器中打开文件一样 https...
解决vue在微信中使用支付功能遇到的一些问题
1.解决vue在微信中跳转外链页面时处理路由中#所引发的问题 在设置跳转外链的时候在 #号前加入?hash这样的拼接方式 http://localhost:8081/?hash#/xxx // 像这样的一个地址就不会被微信屏蔽 2.解决微信支付成功后回调地址不对 我这里遇到的问题是每次支付成功后,都会自动跳回首页#后面的所有内容全部被劫,所以用了一个取巧的办法把回调地址设为 ht...
微信中不能下载apk包的问题
现在微信分享的功能很多,从分享的链接下载apk安卓包是很正常的,但是微信不让下载apk包,只能通过浏览器来下载,但是这要给用户一个提示吧,不然用户不知道 下面我们来实现,引导用户通过浏览器来下载apk包 看下效果,图片在最下面 在需要下载的页面中加入下面的代码 &amp;lt;div class=&quot;weixin-tip&quot; style=&quot;display:none;&quot;&amp;gt; &amp;lt;p&amp;gt...
微信支付,支付宝支付的集成和注意部分
一.支付宝支付1. 集成说明1.1 作为当下最热门的支付宝和微信支付,相信有很多的app都很乐意的将支付宝集成在app中,毕竟只要你开发的app有一点涉及到买卖的,都需要集成支付宝或者微信支付.那么接下来我将为大家一一列举举出我在集成支付宝和微信中遇到的难点和其中出现的一些坑.2. 集成前的准备(里面的步骤在集成文档中都有介绍)2.1 注册支付宝帐号(账户最好采用公司邮箱注册)——附上网址https
微信支付-微信内H5调起支付
  在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。 注意:WeixinJSBridge内置对象在其他浏览器中无效。 getBrandWCPayRequest参数以及返回值定义: 1、网页端接口请求参数列表(参数需要重新进行签名计算,参与签名的参数为:appId、timeStamp、nonceStr、package、signType,参数区分大小写。) 名...
微擎修改支付页面
-
如何把微信中的视频下载到电脑上?
如何把微信中的视频下载到电脑上? 如何把微信中的视频下载到电脑上?
ngrok使用[微信支付]
一、什么是ngrok?通过网站查找,ngrok是一种反向代理,通过在公共的端点和本地运行的web服务器之间建立一个安全通道,ngrok可捕获和分析所有通道上的流量。通过使用后理解:在项目中使用微信和支付宝支付,本地启动tomcat不能进行支付访问。启动服务,并将ngrok服务开启,更改访问路径配置则可以进行支付测试。(应该还可以让别人访问自己的本地web项目,没试过!!)二、ngrok使用步骤1、...
微信公众号支付(二)H5调起支付
上一篇讲到统一下单,得到微信返回的预支付交易会话标识prepay_id,那么下单完成后要做的就是在html页面调起支付窗口。查看官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&amp;amp;index=6,即可看到h5调起支付需要的参数。而且还说明了javascript的写法,主要是onBridgeReady()方法的封...
微信开发时 在页面中 window.location.href 不可用问题
解决办法就是,使用location.href代替
微商城支付开发(二)
微信支付功能(代码开发)上一篇文章已经告诉大家如何配置来获取微信提供的参数。在这里再问问自己是否拿到以下参数:          1.开发者ID(AppID)    2.商户ID             3.支付key(需要加密的MD5)PS(已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败))以下图了解一下大概流程就行了,能完全掌握更好。如果都拿到了就开始把支付的代码嵌入到项目中...
微信开发中的vue路由问题
在微信开发中应用vue路由会遇到很多问题,比如说微信支付不支持支付地址链接附带#,不带#号的模式微信有不支持,在我翻看小米的移动站时,发现小米的解决办法是单独写一个空白页作为订单支付页,商城传订单数据到订单支付页,在空白页发起支付,这样就完美的绕过了微信支付的问题。还有微信对链接里面附带#,会有很多问题,最好更换到不带#的开发模式...
微信audio插件
用于微信中,audio能在安卓播放,不能在ios中自动播放的问题
微信授权及微信支付(注:微信支付有多种这里只讲其一种)
 微信授权分两种:一、手动授权(snsapi_userinfo)二、自动授权(snsapi_base)   手动授权顾名思义就是需要我们手动的去授权如图: 默认授权就是默认就授权完了,比如你关注一个公众号点进去关注后做一些操作他不会提示如上图所展示的让你确认登录,因为其以自动为你注册完了。 微信授权可以分成以下几步来做: 1、引导用户进入授权页面同意授权,获取code 2、通过c...
h5 区分 app 所在设备 和 app 交互 and vue-router 在微信浏览器中操作history URl未改变的解决方案
一,区分ios设备和android 设备 export function iosOrAndroid() {  var ua = navigator.userAgent;  if (/(iPhone|iPad|iPod|iOS)/i.test(ua)) { // 苹果端  return 'ios'  } else if (/(Android)/i.test(ua)) { // 安卓端  ...
微信浏览器中进行支付宝支付
B端项目使用的是支付宝手机网页支付,微信浏览器中屏蔽了支付宝的功能。上有政策下有对策,支付宝也有应对的办法,下来就来说一说支付宝手机网站支付。第一步:开发准备工作 登录支付宝平台(需要实名认证的支付宝账号),根据实际情况创建应用。 选择自用型应用,添加应用功能。 配置应用环境 支付宝中使用的是RSA2非对称密钥结构。 第二步:快速接入 下载服务端SDK(software Developm
支付宝、微信支付(.NET)
项目结构 Core 基础类库文件夹 Common BizResult.cs using AW.Pay.Core.Enum; namespace AW.Pay.Core.Common { /// &amp;amp;amp;lt;summary&amp;amp;amp;gt; /// HTTP请求返回信息 /// &amp;amp;amp;lt;/summary&amp;amp;amp;gt; /// &amp;amp;amp;lt;typepar
联通微支付产品详细介绍
微支付背景、定位及定义 微支付产品卖点及对各方的价值 微支付产品功能介绍及发展规划 微支付产品业务开通及服务支撑 微支付产品资费组成及财务结算 微支付产品推广策略及佣金组成
微支付开发文档
微支付开发文档,关于微支付的初步开发文档,关于微支付的初步开发文档
判断H5页面是否在微信打开
// 判断浏览器环境 isWeixin () { let wx = navigator.userAgent.toLowerCase() if (wx.match(/MicroMessenger/i) === 'micromessenger') { return true } else { return false } } http...
判断页面必须在微信中打开
$(function(){ var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; if (!isWeixin) { document.head.innerHTM
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 物联网微课程 产品经理微专业课程