博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP微信扫码支付接口
阅读量:5113 次
发布时间:2019-06-13

本文共 2291 字,大约阅读时间需要 7 分钟。

最近折腾微信扫码支付,看了微信官方文档,找了很多网页,发现和文档/demo不匹配,现在自己算是弄出来了(文件名称有所更改),贴出来分享一下

 

一.将有用的官方lib文件和使用的相关文件放置到vendor当中

二.调用同一支付接口

WechatController

//调用同一支付接口 public function native($v_oid='',$v_amount=''){ ini_set('date.timezone','Asia/Shanghai'); error_reporting(E_ERROR); //添加相关的类文件 vendor('Wxpay.WxPayApi'); vendor('Wxpay.log'); vendor('Wxpay.NativePay'); //初始化日志 $logHandler= new \CLogFileHandler("../logs/".date('Y-m-d').'.log'); $log = \Log::Init($logHandler, 15); //接受订单信息 if(trim($v_oid)<>"") //判断是否有传递订单号 { $v_oid = trim($v_oid); } else { $this->error('订单号为空',U('User/index')); exit; } $v_amount = trim($v_amount*100); //支付金额 //调用同一支付接口 $notify = new \NativePay(); $input = new \WxPayUnifiedOrder(); //商品描述----------------------------需要参数传递/统一信息 $input->SetBody("商品描述位置"); //附加数据 $input->SetAttach("附加数据位置"); //商户订单号 $input->SetOut_trade_no($v_oid); //总金额 $input->SetTotal_fee($v_amount); //开始时间 $input->SetTime_start(date("YmdHis")); //结束时间 $input->SetTime_expire(date("YmdHis", time() + 600)); //商品标记 $input->SetGoods_tag("商品标记位置"); //异步通知地址,不能携带任何参数 $input->SetNotify_url(U('NotifyProcess')); //交易类型 $input->SetTrade_type("NATIVE"); //商品id $input->SetProduct_id("123456789"); //获取同一支付接口结果 $result = $notify->GetPayUrl($input); $url2 = $result["code_url"]; $this->assign('data',urlencode($url2)); $this->assign('v_oid',$v_oid); $this->assign('v_amount',$v_amount/100); $this->display();}三.生成二维码
三.微信支付生成二维码 public function qrcode(){
error_reporting(E_ERROR); vendor('Wxpay.phpqrcode.phpqrcode'); $url = $_GET["data"]; \QRcode::png($url); } 四.异步处理 具体处理流程和方式按个人需求
//微信异步查询订单机制 public function Queryorder($transaction_id) {
$input = new \WxPayOrderQuery(); $input->SetTransaction_id($transaction_id); $result = \WxPayApi::orderQuery($input); \Log::DEBUG("query:" . json_encode($result)); if(array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") { return true; } return false; } 五.再来个form表单展示二维码

订单信息

订单号:"{$v_oid}"

应付金额:{$v_amount} 付款后,飞行之翼客服会与您联系,如有问题请咨询24小时飞行热线 400-700-2016

微信支付

微信扫码
成功的图就不附上了,这是我遇到的问题,由于要重构,所以比较乱,无效代码也比较多,需要整理,记录下来,分享一二
 
 

转载于:https://www.cnblogs.com/hongxinlaoking/p/5330006.html

你可能感兴趣的文章
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>