在贴代码之前,说明一下:我用的是php7.1

第一步:在前端html里面,设置一个iframe。<iframe src="" id="payw" width="0" height="0" sandbox="allow-scripts allow-top-navigation allow-same-origin"></iframe>

第二步,当点击支付按钮的时候,调用js代码。

$("#btnsure").click(function(e){$.ajax({type: "post",url: "/member/index/pay.html",data: { je:$('input:radio[name=fee]:checked').val() },//je代表金额dataType: 'JSON',success: function (datak) {layui.use(['layer'], function () {var layer = layui.layer;layer.ready(function () {switch(datak.code){case 1:$("#payw").attr('src',datak.url);//url代表服务器返回的微信支付吊起地址。把这个地址放到iframe里面。break;case -1:layer.msg(datak.msg, { 'time': 2000 });window.location.href = datak.url;break;default:layer.msg(datak.msg, { 'time': 2000 });break;}});});},error: function () {alert('编辑失败');},complete: function () {}});
});

第三步,服务器代码(PHP)

$payconfig = config('self');//获取微信支付配置
$param = array();
$param['body']              = $this->request->_member['itemid'];//当前登录会员的ID
$param['out_trade_no']      = date('YmndHis',time()).rand(1111,9999); //订单号
$param['total'] = floatval($this->request->post('je'))*100;//支付金额
$param['spbill_create_ip']  = $this->request->ip(); //ip地址
$param['trade_type']        = "MWEB"; //H5 支付类型
$param['scene_info'] = '{"h5_info": {"type":"Wap","wap_url": "https://XXXX","wap_name": "XXXXXXX"}}';   //场景信息,h5固定
$param['attach'] = $this->request->_member['itemid']; //当前登录会员的ID
$wechatpay = new Weixin($param, $payconfig['weixin'], array(), '');//实例化微信支付类对象
$result = $wechatpay->payh5();//调用h5
if($result['return_code'] == 'SUCCESS'){$this->success('支付成功',$result['mweb_url'].'&redirect_url=https://www.yingmai360.com/member/index/index','',$result);//把支付地址返回给客户端。
}else{$this->error('支付失败');
}

第四步:支付回调的代码(PHP)

//获取接口数据,如果$_REQUEST拿不到数据,则使用file_get_contents函数获取$post = file_get_contents('php://input');if (empty($post) || $post == null || $post == '') {//阻止微信接口反复回调接口  文档地址 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_7&index=7,下面这句非常重要!!!$str='<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';  echo $str;exit('Notify 非法回调');}libxml_disable_entity_loader(true); //禁止引用外部xml实体$xml = simplexml_load_string($post, 'SimpleXMLElement', LIBXML_NOCDATA);//XML转数组  $post_data = (array)$xml;/** 解析出来的数组*Array* (* [appid] => wx1c870c0145984d30* [bank_type] => CFT* [cash_fee] => 100* [fee_type] => CNY* [is_subscribe] => N* [mch_id] => 1297210301* [nonce_str] => gkq1x5fxejqo5lz5eua50gg4c4la18vy* [openid] => olSGW5BBvfep9UhlU40VFIQlcvZ0* [out_trade_no] => fangchan_588796* [result_code] => SUCCESS* [return_code] => SUCCESS* [sign] => F6890323B0A6A3765510D152D9420EAC* [time_end] => 20180626170839* [total_fee] => 100* [trade_type] => JSAPI* [transaction_id] => 4200000134201806265483331660* )**/$myfile = fopen("return_log.txt", "a") or die("Unable to open file!");fwrite($myfile, json_encode($post_data)."\r\n");fclose($myfile); //把获取到的数组信息保存到文件里面。//剩下的逻辑代码,自己根据需求来写。

微信支付底层的类weixin 和 h5支付的函数payh5(),代码单独找我要。

微信支付H5完整版代码相关推荐

  1. springboot 微信小程序 对接微信支付功能(完整版)

    微信小程序对接微信支付功能 业务流程时序图 JAVA版 1. 项目架构 2. pom.xml配置文件 3. 小程序账号参数配置类 4.JAVA 通用代码 4.1 工具类 4.1.1 IdGen (id ...

  2. vue 微信公众号支付 jssdk jsapi实现微信支付(完整版)

    是自己项目里支付功能测试成功后的代码参考,希望能帮助到曾和我一样想找到有效参考借鉴的朋友们, 废话不多说,直接讲具体的操作规程及完整代码 代码部份: 一.vue的环境配置: 1. 先在当前项目的命令行 ...

  3. python实战一个完整的项目-Python项目开发实战(第2版)高清晰PDF完整版+代码

    会写代码≠能做好项目! 1.建立有序生产环境 2.迅速融入开发团队 3.高效处理项目问题 网罗Python项目开发中的流程,让你的编程事半功倍 Python项目与封装/团队开发环境/问题驱动开发/源码 ...

  4. h5封装去底部_干货分享 | 一步一步教你在SpringBoot中集成微信支付H5支付

    一:开发文档场景介绍 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付. 主要用于触屏版的手机浏览器请求微信支付的场景. ...

  5. html-css练习题(天天生鲜静态网页制作)文末有完整版代码地址链接

    一.前言: 前端学习经典练手网页,重新整理网页版代码,如果你是初学者,请试着做一下这个网页 素材:文末完整版代码中......     二.效果图: 三.主要需求: 1.login最外侧盒子设定高29 ...

  6. 机器学习笔记——支持向量机SMO算法完整版代码分析

    机器学习笔记--支持向量机SMO算法完整版代码分析 代码大体分析 外循环 参数类 内循环 KKT条件判断 eCache参数 完整SMO代码 添加核函数代码 代码参考书籍:<机器学习实战> ...

  7. 这才叫大数据!腾讯首次公布微信数据(完整版)

     这才叫大数据!腾讯首次公布微信数据(完整版) 留言将由公众号筛选后显示,对所有人可见. 提交 我的留言 加载中 已留言 642 微信号 ugo642 功能介绍 6-4-2系统@动到不能动为止! ...

  8. 微信支付-H5网页支付开通流程

    简介  H5 支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外 ...

  9. php 工商银行公众号支付代码_php开发微信支付企业付款实例代码

    企业付款的应用场景: 公众号向已关注用户付款,比如处理退款.财务结算等,本文主要和大家分享php开发微信支付企业付款实例代码,希望能帮助到大家. 说明 1.证书需要用自己的商户里面的证书(注意:证书路 ...

  10. uni-app H5兼容ios问题+微信扫一扫、微信支付等常用api代码封装

    最近公司需要用uni开发一个项目,项目中遇到的问题记录一下,方便下次不采坑 场景:         使用wx自带sdk完成,扫一扫.微信登录.微信支付 引用方式: // index.html引入 &l ...

最新文章

  1. 容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle
  2. 面试官让我手写一个生产者消费者模式?
  3. log4j 源码解析_log4j1.x设置自动加载log4j.xml
  4. 从尼古拉斯·泽卡斯开始学习
  5. 资源不关闭,会导致什么最坏的结果
  6. Zend Studio 高亮显示dwt和lbi
  7. 好奇怪呀后面加什么标点_狗狗吃饭时奇怪的小动作,你知道代表什么吗?做个懂狗的好主人...
  8. JVM(三)对象的生死判定和算法详解
  9. mysql连接超时timeout问题
  10. emlog过滤html,Emlog 搜索优化 标题 + 全文搜索
  11. Bootstrap Table的使用小结
  12. YUV采样及存储格式
  13. 没人脉,没资源,没背景的人,最好的出路是什么?
  14. python与pycharm的作用_JSON 在pycharm 与python 三者有什么关系?JSON有什么作用?
  15. 车间调度建模系列2|复杂车间调度问题描述
  16. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
  17. c语言ascii码表6,C语言附录ASCII码表
  18. cass坡度土方计算案例_实例|CASS怎么计算三级边坡的基坑土方?133
  19. 创业者需要干掉的三种思维
  20. 【论文解读】关于基于视觉无人机自主降落平台的论文梳理

热门文章

  1. 二分查找法最大最小比较次数
  2. PDF拆分页面,免费拆分为多个PDF
  3. 投资银行业务法规汇编----仅供学习
  4. 中国数控机床行业市场竞争态势及投资战略规划报告2022-2028年版
  5. 倒立摆入门详解+pid调参
  6. 330UF16V 10*7.7片式铝电解电容封装
  7. 搜狗拼音输入法漂亮皮肤 LeftSide 推荐下载
  8. 计算机维吾尔语键盘用法,维吾尔语键盘练习软件_西域新疆
  9. 浪曦视频在线的ASP.NET AJAX视频教程下载
  10. FFmpeg —— MP4文件提取h264文件