微信支付返回支付链接生成二维码问题

微信支付返回的二维码格式为: weixin://wxpay/bizpayurl?pr=

<img id="qrcodestr" src="{wechatUrl}" alt="二维码" width="170" />

将此二维码通过页面src的形式传递到后台生成二维码显示,这种情况后台是无法正常接收二维码参数的。

原因:带有特殊字符导致传递失败

解决方案:js编码 后台转码

#前台
var url = encodeURIComponent('${wechatPayurl}');
$("#qrcodestr").attr("src","${base}/pay/QRCode?wechatPayurl=" + url);

#后台
String wechatPayurl = request.getParameter("wechatPayurl");
wechatPayurl = java.net.URLDecoder.decode(wechatPayurl, "UTF-8");

这样后台就可以正常接收了,然后通过QRCodeUtil.encode(wechatPayurl, output); 输出流的方式渲染到页面。

期间试过了通过前端js生成二维码,效果不理想,但是也可以实现,可以自己研究。

前几日遇到的问题,记录一下。

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
千味餐厅点餐支付管理系统是以php进行开发的餐厅点餐系统。方便的点菜下单,手机、平板全系列支持;快捷的网络支付,微信及支付宝在线付款;创新的管理模式,全手机操作无小票传递;完善的数据统计,每日营销情况一目了然。 前期配置: 1、使用本系统,您店内必须有Wifi网络。 2、自行架设服务器,安装Php+MySql运行环境。配置服务器,将服务器IP地址设置为固定IP。使用WinXP系统作为服务器请务必使用XP连接数破解补丁,否则最多只能同时在线40人。 3、注册成为本站商户,检查注册时的邮箱,获取登陆商户ID和密码,登陆商户管理,获取通讯密钥。 3、安装本系统,在浏览器地址栏输入//服务器IP地址/Qv/install.php,填写通讯密钥及相关信息,完成安装。 4、使用默认用户名admin密码123456登陆本系统,配置系统。 5、点击右上角设置,基本设置修改餐厅名称,务必将主机地址设置为服务器IP!然后配置餐桌,添加餐品及分类,配置工作人员ID及权限;安装打印控件,测试小票打印机。 6、返回大厅,点击当前员工旁边的二维码,生成各个餐桌的二维码图片,将图片打印,分别粘贴在各个餐桌上。 使用流程: 1、餐厅服务员扫描店员二维码,进入餐厅管理界面;后厨及送餐人员扫描厨房二维码进入后厨管理界面。 2、客人到来后,服务员引导顾客入座,在手机管理界面上点入座。 3、客人连接店内Wifi,扫描桌上二维码,进入顾客自助点餐界面。也可将店内预置的Pad或店员手机给顾客点餐。注意:将店员手机或店内预置Pad给顾客点餐,请务必选择“顾客点餐”选项,这样返回管理界面需要密码,而“点餐”返回时无需密码,防止顾客误操作进入管理界面。返回管理界面点最上面图标。 4、客人选好餐品,下单后,服务员手机端及前台电脑端将收到下单通知,服务员可与客人核对无误后点交厨,提交到后厨处理。 5、后厨接收到前台下单后,点击接收,开始做菜,制作完成后,将菜品交送餐口,点击完成。 6、送餐人员根据厨师送来的菜品,手机上查看应是哪一桌的菜品,然后送餐,送餐完成后点击完成。 7、客人就餐完毕后,呼叫服务员来结账。服务员点击结账,选择可用折扣,自动计算金额。 8、选择支付方式,当选择微信或支付支付时,右边出现扫码链接,点击扫码链接,生成支付二维码界面。 9、客人扫描二维码,完成支付,系统自动同步支付数据,并将交易号填写入备注栏待查备用。 10、客人离开,服务员点击清台,餐桌状态转为空桌,迎接下一位顾客。 v5.0更新 1、系统重构,数据传递改用json 2、餐厅管理改为统一登录,手机端也可管理店铺后台 3、更新打印控件,解决新版chrome核浏览器不能打印问题,重写打印组件,解决打空单问题 4、利用微信模板消息实现点餐下单通知,顾客下单可直接发送消息至厨师、店员微信上,不用厨房打印机也可方便接单 5、独立版可实时提现至店主个人微信余额账户 6、集成UU跑腿外卖送餐 7、大厅广播取餐通知功能 8、界面布局调整,更富立体感
/** * 微信支付帮助库 * ==================================================== * 接口分三种类型: * 【请求型接口】--Wxpay_client_ * 统一支付接口类--UnifiedOrder * 订单查询接口--OrderQuery * 退款申请接口--Refund * 退款查询接口--RefundQuery * 对账单接口--DownloadBill * 短链接转换接口--ShortUrl * 【响应型接口】--Wxpay_server_ * 通用通知接口--Notify * Native支付——请求商家获取商品信息接口--NativeCall * 【其他】 * 静态链接二维码--NativeLink * JSAPI支付--JsApi * ===================================================== * 【CommonUtil】常用工具: * trimString(),设置参数时需要用到的字符处理函数 * createNoncestr(),产生随机字符串,不长于32位 * formatBizQueryParaMap(),格式化参数,签名过程需要用到 * getSign(),生成签名 * arrayToXml(),array转xml * xmlToArray(),xml转 array * postXmlCurl(),以post方式提交xml到对应的接口url * postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url */ include_once("SDKRuntimeException.php"); include_once("WxPay.pub.config.php"); /** * 所有接口的基类 */ class Common_util_pub { function __construct() { } function trimString($value) { $ret = null; if (null != $value) { $ret = $value; if (strlen($ret) == 0) { $ret = null; } } return $ret; } /** * 作用:产生随机字符串,不长于32位 */ public function createNoncestr( $length = 32 ) { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str =""; for ( $i = 0; $i $v) { if($urlencode) { $v = urlencode($v); } //$buff .= strtolower($k) . "=" . $v . "&"; $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0) { $reqPar = substr($buff, 0, strlen($buff)-1); } return $reqPar; } /** * 作用:生成签名 */ public function getSign($Obj) { foreach ($Obj as $k => $v) { $Parameters[$k] = $v; } //签名步骤一:按字典序排序参数 ksort($Parameters); $String = $this->formatBizQueryParaMap($Parameters, false)
千味餐厅点餐支付管理系统是以php进行开发的餐厅点餐系统。 结合店内WiFI网络,可实现顾客使用自己的手机方便的点菜下单,手机、平板全系列支持; 整合快捷的二维码扫码支付功能,顾客可用微信及支付宝扫描二维码付款,省去找零麻烦; 创新的管理模式,店员及后厨均使用手机或平板操作,无需打印小票传单; 完善的数据统计,每日营销情况一目了然。 使用流程: 1、餐厅服务员扫描店员二维码,进入餐厅管理界面;后厨及送餐人员扫描厨房二维码进入后厨管理界面。 2、客人到来后,服务员引导顾客入座,在手机管理界面上点入座。 3、客人连接店内Wifi,扫描桌上二维码,进入顾客自助点餐界面。也可将店内预置的Pad或店员手机给顾客点餐。注意:将店员手机或店内预置Pad给顾客点餐,请务必选择“顾客点餐”选项,这样返回管理界面需要密码,而“点餐”返回时无需密码,防止顾客误操作进入管理界面。返回管理界面点最上面图标。 4、客人选好餐品,下单后,服务员手机端及前台电脑端将收到下单通知,服务员可与客人核对无误后点交厨,提交到后厨处理。 5、后厨接收到前台下单后,点击接收,开始做菜,制作完成后,将菜品交送餐口,点击完成。 6、送餐人员根据厨师送来的菜品,手机上查看应是哪一桌的菜品,然后送餐,送餐完成后点击完成。 7、客人就餐完毕后,呼叫服务员来结账。服务员点击结账,选择可用折扣,自动计算金额。 8、选择支付方式,当选择微信或支付支付时,右边出现扫码链接,点击扫码链接,生成支付二维码界面。 9、客人扫描二维码,完成支付,系统自动同步支付数据,并将交易号填写入备注栏待查备用。 10、客人离开,服务员点击清台,餐桌状态转为空桌,迎接下一位顾客。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值