博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信支付 扫码支付 模式二 完整版和测试代码+后台对账
阅读量:6227 次
发布时间:2019-06-21

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

先说下其中的坑,微信的接口文档和demo,那真叫一个坑,要么文字指向性错误,那么demo代码没法运行,报的错,甚至没有文档可查

 

先说明一些问题,街上的一些扫码微信的二维码其实一般都是注册的企业微信号,用的是微信转账,企业微信提现需不需要手续费这个目前不知,

第二种就是你买一些东西,商家就会生成一个二维码给你扫,扫出来就是可以直接支付的,有金额的二维码,这个才是微信扫码支付,模式二

其实就是下一个订单然后支付,模式一的固定二维码支付不知道有人成功过吗?我一直运行不成功,返回一直商家数据结构错误

demo代码下载地址:  http://download.csdn.net/detail/zh7314/9593664

 

支付授权目录         http://xxx.com/pay/
 
测试授权目录         http://xxx.com/pay_test/example/
请记住一定要授权你的页面的上级目录,多一级都不行,我不知道为什么

 

首先把 pay_test\lib\WxPay.Config.php 

 

* APPID:绑定支付的APPID(必须配置,开户邮件中可查看)     *      * MCHID:商户号(必须配置,开户邮件中可查看)     *      * KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置)     * 设置地址:https://pay.weixin.qq.com/index.php/account/api_cert     *      * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置),     * 获取地址:https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=2005451881&lang=zh_CN       这个你去设置的32的那个      * @var string     */    const APPID = '';    const MCHID = '';    const KEY = '';    const APPSECRET = '';

 

提交的页面就是 submit.php 接受页面是 getqrcode.php 这个页面就是生产二维码和主动请求订单是否支付成功的

支付回调URL  http://xxx.com/pay_test/return.php 这个也是个坑,至今没有接受过任何数据,捕捉了页面接受的所有东西,写入日志就是什么都没有,好奇怪

如果有知道任何接受的兄弟,请联系楼下,发下demo代码看下

submit.php代码 

    
融智金融-微信支付还款
140x140

融智金融

温馨提示!

金额填写: 100元就写100即可
备注格式: 营业厅-操作人员-金额

 

getqrcode.php

 

setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $sql = 'INSERT INTO wx_log (log_id,out_trade_no,prepay_id,money,notify_money,time,note,result_code) VALUES (null,:SetOut_trade_no,0,:money,0,:time,:note,0)'; $stmt = $db->prepare($sql); $stmt->bindParam(':SetOut_trade_no', $SetOut_trade_no); $stmt->bindParam(':money',$mon); $stmt->bindParam(':time',$time); $stmt->bindParam(':note', $note); $stmt->execute(); // }catch(PDOException $exception){// echo 'PDO Exception Caught.';// echo 'Error with the database:
';// echo 'SQL Query: '.$query;//// echo '
';//    echo "Error: ".$exception->getMessage()."
";// echo "Code: ".$exception->getCode()."
";// echo "File: ".$exception->getFile()."
";// echo "Line: ".$exception->getLine()."
";// echo "Trace: ".$exception->getTraceAsString()."
";// echo '
';// } //die;$notify = new NativePay();$input = new WxPayUnifiedOrder();$input->SetBody($SetBody);$input->SetAttach($SetAttach);$input->SetOut_trade_no($SetOut_trade_no);$input->SetTotal_fee($money);$input->SetTime_start(date("YmdHis"));$input->SetTime_expire(date("YmdHis", time() + 600));$input->SetGoods_tag($SetGoods_tag);$input->SetNotify_url("http://pay.xinyzx.com/pay_test/return.php");$input->SetTrade_type("NATIVE");$input->SetProduct_id("1");$result = $notify->GetPayUrl($input);$url = $result["code_url"];//include '../phpqrcode.php';//QRcode::png($url);?>
融智金融-微信支付还款
notify_orders.php
ini_set('date.timezone','Asia/Shanghai');error_reporting(E_ERROR);require_once "../lib/WxPay.Api.php";//$_POST["out_trade_no"] = '201607291913581075';//处理客户支付,是否支付成功if(isset($_POST["out_trade_no"]) && $_POST["out_trade_no"] != ""){    $out_trade_no = $_POST["out_trade_no"];    $input = new WxPayOrderQuery();    $input->SetOut_trade_no($out_trade_no);//    P(WxPayApi::orderQuery($input));//    exit();                echo json_encode(WxPayApi::orderQuery($input));    exit();}

 

 

 

核心的部分就是这些,还有一个后台对账的其实很简单了,详细的请参看代码

转载于:https://www.cnblogs.com/zx-admin/p/5726657.html

你可能感兴趣的文章
2014百度之星预赛(第二场)——Best Financing
查看>>
《Python简明教程》总结
查看>>
构造 - HDU 5402 Travelling Salesman Problem
查看>>
[转]图解分布式一致性协议Paxos
查看>>
【SSH2(实用文章)】--Struts2文件上传和下载的例子
查看>>
Rust初步(七):格式化
查看>>
maven教程
查看>>
微服务架构的设计模式
查看>>
【C++】继承时构造函数和析构函数
查看>>
python风味之大杂烩
查看>>
NSDate & NSDateFormatter
查看>>
android 点击屏幕关闭 软键盘
查看>>
相似图片搜索的原理(转)
查看>>
钟南山:高收入群体往往老得快
查看>>
Linux Kernel(Android) 加密算法汇总(三)-应用程序调用内核加密算法接口
查看>>
开发中三个经典的原则
查看>>
logging日志管理-将日志写入文件
查看>>
Hibernate 、Hql查询和Criteria查询
查看>>
[saiku] 配置spring-security 允许 iframe加载saiku首页
查看>>
AJAX 页面数据传递
查看>>