php集成支付(ThinkPHP框架整合微信支付之刷卡模式图文详解)
php集成支付
ThinkPHP框架整合微信支付之刷卡模式图文详解本文实例讲述了thinkphp框架整合微信支付之刷卡模式。分享给大家供大家参考,具体如下:
大家好,这篇文章是继微信支付之native 扫码支付 模式二之后的微信支付系列教程第四篇:微信刷卡支付
本教程跟前三篇教程不一样,所需要的类库也不一样,所以做刷卡支付的时候,与之前的方法没多少关系,大家注意一下。
下面开始介绍详细步骤!
step1:下载微信刷卡支付demo,如下图:
wxpaymicropayhelper:这个文件夹下就是刷卡支付微信提供的类库
demo:这个文件夹下是关于刷卡支付的详细demo
我们来看一下demo文件夹:
这里我们要用到
micropay_call.php:这个就是刷卡支付的具体demo
我们可以把里面内容复制下来,放到tp的控制器中(稍后介绍)
step2:把下载下来的微信刷卡支付的类库同样放到vendor目录下:
step3:上面的类库放好后我们可以来写控制器里面的内容了首先还是引入类库:
|
/** * 初始化 */ public function _initialize() { //引入wxpaypubhelper vendor( 'wxpaymicropayhelper.wxpaymicropayhelper' ); } |
接下来把micropay_call.php下的代码提取出来复制到控制器下,并给个名字:
|
public function micropay() { //自定义订单号,此处仅作举例 $timestamp = time(); $out_trade_no = \wxpayconf_micropay::appid. "$timestamp" ; //获取用户一维码 if (isset( $_post [ "auth_code" ])) { $auth_code = $_post [ "auth_code" ]; //使用被扫支付接口 $micropaycall = new \micropaycall(); //设置被扫支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $micropaycall ->setparameter( "body" , "贡献一分钱" ); //商品描述 $micropaycall ->setparameter( "out_trade_no" , "$out_trade_no" ); //商户订单号 $micropaycall ->setparameter( "total_fee" , "1" ); //总金额 $micropaycall ->setparameter( "auth_code" , "$auth_code" ); //交易类型 //非必填参数,商户可根据实际情况选填 //$micropaycall->setparameter("sub_mch_id","xxxx");//子商户号 //$micropaycall->setparameter("device_info","xxxx");//设备号 //$micropaycall->setparameter("attach","xxxx");//附加数据 //$micropaycall->setparameter("time_start","xxxx");//交易起始时间 //$micropaycall->setparameter("time_expire","xxxx");//交易结束时间 //$micropaycall->setparameter("goods_tag","xxxx");//商品标记 //$micropaycall->setparameter("openid","xxxx");//用户标识 //$micropaycall->setparameter("product_id","xxxx");//商品id //提交订单 $micropaycallresult = $micropaycall ->getresult(); //商户根据实际情况设置相应的处理流程,此处仅作举例 if ( $micropaycallresult [ "return_code" ] == "fail" ) { echo "通信出错:" . $micropaycallresult [ 'return_msg' ]. "<br>" ; } elseif ( $micropaycallresult [ "result_code" ] == "fail" ) { echo "出错" . "<br>" ; echo "错误代码:" . $micropaycallresult [ 'err_code' ]. "<br>" ; echo "错误代码描述:" . $micropaycallresult [ 'err_code_des' ]. "<br>" ; } else { echo "用户标识:" . $micropaycallresult [ 'openid' ]. "<br>" ; echo "是否关注公众账号:" . $micropaycallresult [ 'is_subscribe' ]. "<br>" ; echo "交易类型:" . $micropaycallresult [ 'trade_type' ]. "<br>" ; echo "付款银行:" . $micropaycallresult [ 'bank_type' ]. "<br>" ; echo "总金额:" . $micropaycallresult [ 'total_fee' ]. "<br>" ; echo "现金券金额:" . $micropaycallresult [ 'coupon_fee' ]. "<br>" ; echo "货币种类:" . $micropaycallresult [ 'fee_type' ]. "<br>" ; echo "微信支付订单号:" . $micropaycallresult [ 'transaction_id' ]. "<br>" ; echo "商户订单号:" . $micropaycallresult [ 'out_trade_no' ]. "<br>" ; echo "商家数据包:" . $micropaycallresult [ 'attach' ]. "<br>" ; echo "支付完成时间:" . $micropaycallresult [ 'time_end' ]. "<br>" ; } } else { $this ->assign( 'out_trade_no' , $out_trade_no ); $this ->display(); } } |
这是我写的控制器方法内容,对应micropay.html页面:
|
<!doctype html> <html> <head> <meta charset= "utf-8" > <title>微信安全支付</title> </head> <body> </br></br> <li align= "center" > <form action= "__self__" method= "post" > <p>请输入微信刷卡界面的一维码:</p> <p><input type= "text" name= "auth_code" value= "" ></p> <button type= "submit" >提交</button> </form> </li> <li align= "center" > <p>订单号:<?php echo $out_trade_no ; ?></p> </li> <li align= "center" > <table> <td> <form action= "./order_query.php" method= "post" > <input name= "out_trade_no" type= 'hidden' value= "<?php echo $out_trade_no; ?>" > <button type= "submit" >查询订单状态</button> </form> </td> <td> <form action= "./refund.php" method= "post" > <input name= "out_trade_no" type= 'hidden' value= "<?php echo $out_trade_no; ?>" > <input name= "refund_fee" type= 'hidden' value= "1" > <button type= "submit" >申请退款</button> </form> </td> <td> <form action= "./reverse.php" method= "post" > <input name= "out_trade_no" type= 'hidden' value= "<?php echo $out_trade_no; ?>" > <button type= "submit" >冲正</button> </form> </td> </table> </li> <br> <li align= "center" > <a href= "../index.php" rel= "external nofollow" >返回首页</a> </li> </body> </html> |
到此我们就可以去测试一下了
请看页面:
页
面中刷卡的一维码就是你微信里面钱包下面的刷卡功能,打开后就可以看到你的一维码,这个一维码是过一段时间就自己刷新的,输入进去点击提交,请看微信页面:
到此,刷卡支付功能也做好啦
微信支付教程jsapi篇:
http://www.zzvips.com/article/180165.html
微信支付教程扫码模式一:
http://www.zzvips.com/article/180166.html
微信支付教程扫码模式二:
http://www.zzvips.com/article/180167.html
希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。
原文链接:http://www.thinkphp.cn/code/1324.html
- thinkphp5.1请求流程(ThinkPHP5.0框架使用build 自动生成模块操作示例)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- thinkphp5框架怎么设置(thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例)
- thinkphp5框架怎么打开(thinkphp5.1框架中容器Container和门面Facade的实现方法分析)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- thinkphp5怎么设置当前的模块(thinkPHP5.1框架中Request类四种调用方式示例)
- thinkphp继承model如何使用(Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解)
- thinkphp5 新增模块(Thinkphp5.0框架的Db操作实例分析连接、增删改查、链式操作等)
- thinkphp5框架怎么打开(thinkphp5.1框架模板布局与模板继承用法分析)
- thinkphp使用说明(thinkphp框架使用JWTtoken的方法详解)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- thinkphp6.0安装(使用composer安装使用thinkphp6.0框架问题视频教程)
- thinkphp怎么整合微信支付(ThinkPHP框架实现的微信支付接口开发完整示例)
- 华为 联想等46家公司笔试面试题,涉及各行各业,建议收藏(联想等46家公司笔试面试题)
- ()
- ()
- 800壮士拼死拖住30万日军 八佰 的真实历史,誓与阵地共存亡(800壮士拼死拖住30万日军)
- 演员陈创,火于 哮天犬 ,颠峰于 福贵 ,现状却令人唏嘘(演员陈创火于哮天犬)
- 幼小衔接-20以内看图读数 写数 数的组成练习题(幼小衔接-20以内看图读数)
热门推荐
- mongodb常用命令的语法
- python使用教程操作(详解python中@的用法)
- mysql数值类型图解(详解mysql持久化统计信息)
- python图形绘制教程(python绘制漏斗图步骤详解)
- dedecms标题在哪改(织梦DEDECMS文章拼音命名规则时去掉id的方法)
- 织梦dedecms建站的核心经验和技巧(dedecms模板安装教程及模板相关知识学习)
- ubuntu如何搭建vnc(Ubuntu20.04 VNC 安装与设置实现)
- mysqlsql语句的优化(MySQL优化之如何写出高质量sql语句)
- mysql建表时指定聚簇索引(一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的)
- sparkdataframe如何变换列名(spark dataframe 将一列展开,把该列所有值都变成新列的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9