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框架怎么打开(thinkphp5.1框架模板布局与模板继承用法分析)
- thinkphp5数据库配置(Thinkphp5框架实现获取数据库数据到视图的方法)
- thinkphp3.2.3 接口开发(ThinkPHP3.2.3框架Memcache缓存使用方法实例总结)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- php集成支付(ThinkPHP框架整合微信支付之刷卡模式图文详解)
- thinkphp5开发小程序后台(PHP小程序支付功能完整版基于thinkPHP)
- thinkphp 多维度展示数据(Thinkphp自定义生成缩略图尺寸的方法)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- thinkphp5框架分析(thinkPHP5框架路由常用知识点汇总)
- thinkphp5开发教程(thinkPHP5框架接口写法简单示例)
- thinkphp从模板自定义标签(Thinkphp5.0框架视图view的循环标签用法示例)
- thinkphp中view视图的作用(Thinkphp5.0框架视图view的模板布局用法分析)
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- thinkphp5访问路径(thinkphp5修改view到根目录实例方法)
- thinkphp5框架怎么设置(thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例)
- thinkphp接口开发实例(ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
- 2021款起亚霸锐到店了 更换车标,竞争宝马X5有戏吗(2021款起亚霸锐到店了)
- 新款起亚霸锐实拍,比普拉多气派,配3.0T V6,引入国内或许能大卖(新款起亚霸锐实拍)
- ()
- 张勇 阿里新任掌门人(阿里新任掌门人)
热门推荐
- 新加坡服务器目前负载(新加坡服务器好不好?新加坡服务器有什么优势?)
- css如何将元素显示到最上面(css中子元素设置margin-top为什么影响了父元素)
- 云服务器/VPS/云主机/服务器修改登陆密码图文教程(云服务器/VPS/云主机/服务器修改登陆密码图文教程)
- python云服务技术(Python脚本修改阿里云的访问控制列表的方法)
- xshell服务器(如何使用Xshell连接云服务器)
- C#中Serializable序列化
- linux设置lib目录(Linux如何使用libudev获取USB设备VID及PID)
- mysql的binlog几种模式(MySQL系列之redo log、undo log和binlog详解)
- dedecms5.7使用教程(dedecms v5.7提示php.ini register_globals must is Off错误的解决方法)
- 织梦cms指定栏目怎么取(织梦CMS后台模板列表按字母排序方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9