微信支付H5完整版代码
在贴代码之前,说明一下:我用的是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完整版代码相关推荐
- springboot 微信小程序 对接微信支付功能(完整版)
微信小程序对接微信支付功能 业务流程时序图 JAVA版 1. 项目架构 2. pom.xml配置文件 3. 小程序账号参数配置类 4.JAVA 通用代码 4.1 工具类 4.1.1 IdGen (id ...
- vue 微信公众号支付 jssdk jsapi实现微信支付(完整版)
是自己项目里支付功能测试成功后的代码参考,希望能帮助到曾和我一样想找到有效参考借鉴的朋友们, 废话不多说,直接讲具体的操作规程及完整代码 代码部份: 一.vue的环境配置: 1. 先在当前项目的命令行 ...
- python实战一个完整的项目-Python项目开发实战(第2版)高清晰PDF完整版+代码
会写代码≠能做好项目! 1.建立有序生产环境 2.迅速融入开发团队 3.高效处理项目问题 网罗Python项目开发中的流程,让你的编程事半功倍 Python项目与封装/团队开发环境/问题驱动开发/源码 ...
- h5封装去底部_干货分享 | 一步一步教你在SpringBoot中集成微信支付H5支付
一:开发文档场景介绍 H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付. 主要用于触屏版的手机浏览器请求微信支付的场景. ...
- html-css练习题(天天生鲜静态网页制作)文末有完整版代码地址链接
一.前言: 前端学习经典练手网页,重新整理网页版代码,如果你是初学者,请试着做一下这个网页 素材:文末完整版代码中...... 二.效果图: 三.主要需求: 1.login最外侧盒子设定高29 ...
- 机器学习笔记——支持向量机SMO算法完整版代码分析
机器学习笔记--支持向量机SMO算法完整版代码分析 代码大体分析 外循环 参数类 内循环 KKT条件判断 eCache参数 完整SMO代码 添加核函数代码 代码参考书籍:<机器学习实战> ...
- 这才叫大数据!腾讯首次公布微信数据(完整版)
这才叫大数据!腾讯首次公布微信数据(完整版) 留言将由公众号筛选后显示,对所有人可见. 提交 我的留言 加载中 已留言 642 微信号 ugo642 功能介绍 6-4-2系统@动到不能动为止! ...
- 微信支付-H5网页支付开通流程
简介 H5 支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外 ...
- php 工商银行公众号支付代码_php开发微信支付企业付款实例代码
企业付款的应用场景: 公众号向已关注用户付款,比如处理退款.财务结算等,本文主要和大家分享php开发微信支付企业付款实例代码,希望能帮助到大家. 说明 1.证书需要用自己的商户里面的证书(注意:证书路 ...
- uni-app H5兼容ios问题+微信扫一扫、微信支付等常用api代码封装
最近公司需要用uni开发一个项目,项目中遇到的问题记录一下,方便下次不采坑 场景: 使用wx自带sdk完成,扫一扫.微信登录.微信支付 引用方式: // index.html引入 &l ...
最新文章
- 容斥 + 爆搜打表 ---- 2020年南京icpc H.Harmonious Rectangle
- 面试官让我手写一个生产者消费者模式?
- log4j 源码解析_log4j1.x设置自动加载log4j.xml
- 从尼古拉斯·泽卡斯开始学习
- 资源不关闭,会导致什么最坏的结果
- Zend Studio 高亮显示dwt和lbi
- 好奇怪呀后面加什么标点_狗狗吃饭时奇怪的小动作,你知道代表什么吗?做个懂狗的好主人...
- JVM(三)对象的生死判定和算法详解
- mysql连接超时timeout问题
- emlog过滤html,Emlog 搜索优化 标题 + 全文搜索
- Bootstrap Table的使用小结
- YUV采样及存储格式
- 没人脉,没资源,没背景的人,最好的出路是什么?
- python与pycharm的作用_JSON 在pycharm 与python 三者有什么关系?JSON有什么作用?
- 车间调度建模系列2|复杂车间调度问题描述
- shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
- c语言ascii码表6,C语言附录ASCII码表
- cass坡度土方计算案例_实例|CASS怎么计算三级边坡的基坑土方?133
- 创业者需要干掉的三种思维
- 【论文解读】关于基于视觉无人机自主降落平台的论文梳理