微信转账扫码不能付款扫码支付不成功

微信支付官方demo下载地址&
我修改后的demo&
官方demo的目录结构如下:
我在本地环境下使用微信支付官方demo过程中遇到的问题有:
将&/lib/WxPay.Api.php&函数&postXmlCurl&中的两行代码
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
访问 &http://localhost/weixin/WxpayAPI_php_v3/example/native.php&&时的错误提示
根据错误提示知道:"未定义的索引" 错误出在&&/exaple/native.php&的 42 行,
显而易见,是变量&$result&中没有定义 code_url。打印变量&$result:&echo "&pre&";print_r($result);exit();&
[return_code] =& FAIL
[return_msg] =& invalid spbill_create_ip
参数 spbill_create_ip 在 &/lib/WxPay.Api.php&&的53行
打印出变量 &$_SERVER['REMOTE_ADDR']&,发现是 &::1&,这明显是一个无效的ip地址
//获取请求地址
&将上面的函数添加到类WxPayApi后,修改如下
$inputObj-&SetSpbill_create_ip(self::real_ip());//终端ip
//$inputObj-&SetSpbill_create_ip("1.1.1.1");
再次访问 &http://localhost/weixin/WxpayAPI_php_v3/example/native.php&,出现在眼前的页面如下
手机微信扫支付模式二的二维码,支付1分钱,好的,大功告成,^_^!
且慢,还有回调地址没处理呢?对,对,对。差点忘记了最重要的 notify_url,它是专门来告诉我们支付结果的。
参数notify_url是在 &/example/native.php&&中设置的
设置好正确的回调地址,所谓正确的地址必须在微信公众号设置的支付授权目录(或测试授权目录)下,且域名要和微信公众号绑定的服务器地址域名相同。
如果此处的 notify_url 地址填写为 &http://localhost/weixin/WxpayAPI_php_v3/example/notify.php&&,你觉得微信服务器会向这个回调地址发送消息吗?(不巧的是,我就犯过这个愚蠢的错误,还满心欢喜的以为本地环境下也可以微信扫码支付,又满腔愤懑的说微信支付成功后无法回调)
虽然微信绝不可能向本地地址发送消息,但微信还提供了另一个接口,可以让我们在本地环境下得知微信扫码支付的结果。
既然微信不主动告知我们支付成功,那我们还不能主动去问吗?问谁,当然是微信了。
访问 &http://localhost/WxpayAPI_php_v3/example/orderquery.php&,输入 商户订单号(即out_trade_no),点击查询
思路:扫码页面用js定时ajax去获取支付结果,当检测到支付成功后,跳转到回调页面notify_url进行业务处理。
在 &/example/native.php&&的html里添加这样一段代码
&input type="hidden" name="out_trade_no" id="out_trade_no" value="&?php echo $out_trade_?&" /&
&script src="assets/js/jquery-1.9.1.min.js"&&/script&
$(function(){
setInterval(function(){check()}, 5000);
//5秒查询一次支付是否成功
function check(){
var url = "http://localhost/WxpayAPI_php_v3/example/orderquery2.php";  //新建
var out_trade_no = $("#out_trade_no").val();
var param = {'out_trade_no':out_trade_no};
$.post(url, param, function(data){
data = JSON.parse(data);
if(data['trade_state'] == "SUCCESS"){
alert(JSON.stringify(data));
alert("订单支付成功,即将跳转...");
window.location.href = "http://localhost/WxpayAPI_php_v3/index.php";
console.log(data);
新建一个 &/example/orderquery2.php&,用来查询支付结果,代码如下
ini_set('date.timezone','Asia/Shanghai');
error_reporting(E_ERROR);
require_once "../lib/WxPay.Api.php";
require_once 'log.php';
//初始化日志
$logHandler= new CLogFileHandler("./logs/".date('Y-m-d').'.log');
$log = Log::Init($logHandler, 15);
if(isset($_REQUEST["transaction_id"]) && $_REQUEST["transaction_id"] != ""){
$transaction_id = $_REQUEST["transaction_id"];
$input = new WxPayOrderQuery();
$input-&SetTransaction_id($transaction_id);
echo json_encode(WxPayApi::orderQuery($input));
if(isset($_REQUEST["out_trade_no"]) && $_REQUEST["out_trade_no"] != ""){
$out_trade_no = $_REQUEST["out_trade_no"];
$input = new WxPayOrderQuery();
$input-&SetOut_trade_no($out_trade_no);
echo json_encode(WxPayApi::orderQuery($input));
转自:&https://www.cnblogs.com/lhat/p/5611242.html
阅读(...) 评论()微信扫码支付成功怎么回调进行判断微信支付成功。代码里面订单支付完成那块取不到值 - ThinkPHP框架
* @link http://blog.kunx.org
* @author kunx &kunx-&
* 微信扫码支付示例代码
namespace app\index\
class Index extends \think\Controller {
* 用户可以看到的订单支付表单页面,目前只有一个二维码而已。
* @return type
public function index() {
ini_set('date.timezone', 'Asia/Shanghai');
\think\Loader::import('wxpay.Autoloader');
$notify = new \NativePay();
* 1、调用统一下单,取得code_url,生成二维码
* 2、用户扫描二维码,进行支付
* 3、支付完成之后,微信服务器会通知支付成功
* 4、在支付成功通知中需要查单确认是否真正支付成功(见:wxpayNotify方法)
$input = new \WxPayUnifiedOrder();
$input-&SetBody(&啊咿呀哟商城订单&);
$input-&SetOut_trade_no(\WxPayConfig::$appid . mt_rand());
$input-&SetTotal_fee(&1&);
$input-&SetTime_start(date(&YmdHis&));
$input-&SetTime_expire(date(&YmdHis&, time() + 300));//有效期最少5分钟
$input-&SetGoods_tag(&blog.kunx.org&);
$url = \think\Url::build('wxpayNotify', '', true, true);
$input-&SetNotify_url($url);
$input-&SetTrade_type(&NATIVE&);
$input-&SetProduct_id(&100&);
$result = $notify-&GetPayUrl($input);
$url2 = $result[&code_url&];
$url2 = base64_encode($url2);
//渲染一个视图,参数用于获取验证码。
return $this-&fetch('', ['text' =& $url2]);
* 二维码。
* @param string $text
* @return png
public function qrcode($text) {
\think\Loader::import('qrcode.qrcode');
$text = base64_decode($text);
return \QRcode::png($text);
* 微信通知页面。
public function wxpayNotify() {
ini_set('date.timezone', 'Asia/Shanghai');
\think\Loader::import('wxpay.Autoloader');
error_reporting(E_ERROR);
//初始化日志
$logHandler = new \CLogFileHandler(&../logs/& . date('Y-m-d') . '.log');
\Log::Init($logHandler, 15);
\Log::DEBUG(&begin notify&);
//在PayNotifyCallBack中重写了NotifyProcess,会发起一个订单支付状态查询,其实也可以不去查询,因为从php://input中已经可以获取到订单状态。file_get_contents(&php://input&)
//$notify = new \WxPayNotify();
$notify = new \PayNotifyCallBack();
$notify-&Handle(false);
$result = $notify-&GetValues();
if ($result['return_code'] == 'SUCCESS') {
//订单支付完成,修改订单状态,发货。
\Log::DEBUG(&end notify&);
\Log::INFO(str_repeat(&=&, 20));
请教下:微信扫码支付成功怎么回调进行判断微信支付成功。代码里面订单支付完成那块取不到值。。。
wuyinleizang
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。微信扫码支付开发流程和分析 - 简书
微信扫码支付开发流程和分析
1 分类说明
1.1 模式一
1.2 模式二
总结:根据官方文档配合现有网站业务,选择模式二来作为微信扫码支付方式。原因是:
流程更加简单 2. 支付二维码有效期控制在2小时 3. 支付请求更加主动
2 业务流程
2.1 选择充值金额
2.2 调用微信统一下单方法,同时网站内部产生支付订单
2.3 获取微信统一支付方法返回的支付链接
2.4 将支付链接作为内容生成支付二维码
2.5 支付二维码展示给用户
2.6 手机端用户长按二维码,微信调用支付功能
2.7 网站主动发起订单查询方法
2.8 对微信异步通知结果进行处理
3 功能实现
3.1 微信充值接口
method: POST
用户有效token
用户在微信公众号下唯一识别编号
微信支付类型,JSAPI(公众号支付)、NATIVE(扫码支付)
3.2 微信支付下单组件
Core\Unlity\WxPay\WxPayCoreAPI::unifiedorder()
3.3 bacon-qr-code composer package 生成二维码
composer.json 添加 bacon/bacon-qr-code使用:
$renderer = new \BaconQrCode\Renderer\Image\Png();
$renderer-&setHeight(256);
$renderer-&setWidth(256);
$writer = new \BaconQrCode\Writer($renderer);
$writer-&writeFile('Hello World!', 'qr.png');
3.4 展示支付二维码
因为需要在模板中显示,所以在生成二维码时将图片保存在服务器静态域下通过 http 或 https 访问显示支付二维码。
3.5 调用支付功能(微信自身调用)
微信客户端中长按二维码微信会自动识别支付链接然后调用支付功能插件。
3.6 订单查询(网站主动查询)
因为微信扫码支付未提供有效的同步通知结果,所以最后想到的办法就是手动向微信服务器查询订单处理结果,然后配合网站业务完成支付操作所有步骤。
3.7 异步通知结果处理
微信异步通知是直接对服务器响应处理结果,内网无法获取。所以做好日志记录操作,然后根据响应结果和现有网站记录信息来验证订单,验证通过后内部订单状态更新并对微信响应处理结果。因为微信通知频率为15/15/30/180/00/,单位:秒,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知。
4.1 微信扫码支付方式选择
微信提供 2 种扫码支付方式,从开发时间和业务实际考虑上,选择模式二更有优点。
4.2 支付二维码生成
微信官方提供的 SDK 中有提供生成二维码的工具类文件,但是因为和现有框架不能很好兼容,调整时间较长所以最后解决办法是在composer中找到一个被很多人使用的包来作为生成二维码的工具。
4.3 下单帐号和支付帐号不一致问题
个人在开发环境中调试不存在这个问题,当多人同时验证支付功能时候就会出现,原因是在早期生成支付二维码时只生成一张图片但是被多人使用,这样就会存在下单帐号和支付帐号不一致问题并且有时候会出现本人充值的金额前后不一致问题,原因都是因为支付二维码不存在唯一性。
4.4 二维码在微信客户端页面显示问题
目前在微信客户端中存在微信支付二维码无法显示内容,从生成二维码方法中未检查到原因,所以这个问题在后期优化中需要继续研究。
PHP, Lua, Python, MySQL, JS, Nginx, Linux, H5, CSS, bash shell
欢迎留言、转发 微信极速开发系列文章:http://www.jianshu.com/p/a172a1b69fdd 上一篇文章介绍了微信提供的那些支付方式以及公众号支付http://www.jianshu.com/p/cba7 这篇文章我们来聊聊微信扫码支付(...
微信支付文档 1.微信支付简介 a)功能简介 b)支付账户 c)支付方式 d)账号测试 2.JS API支付接口 a)支付场景 b)功能交互 c)获取当前微信版本号 d)显示微信安全支付标题 e)JS API支付接口(getBrandWCPayRequest)定义 f)订单...
在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去,微信支付旨在为广大微信用户及商户提供更优质的支付服务,微信的支付和安全系统由腾讯财付通提供支持。本文主要介绍如何在微信公众号上实现微信支付...
目前,以支付宝和微信为代表的扫码支付正在各个线下消费场景中攻城略地,也给我们的生活带来了不小的方便。今天就来聊聊生活中常见的几种扫码支付方式。 1、扫码转账 支付流程:用户点击支付宝扫一扫,扫码商家事先准备好的二维码,识别出来后选择转账。 扫码分析:此扫码支付的本质其实还是...
银联支付,支付宝支付,微信支付的三大总结,之前也有写过两篇。 微信支付,支付宝支付,银联支付——三大支付总结: http://blog.csdn.net/androidstarjack/article/details/ 支付宝植入总结: android 支付...
文章链接地址:http://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=&idx=1&sn=04dfcb6fee2c8c71922a71d&chksm=e9bf5303dec8da151a...
为什么要提升阅读能力 在知识经济时代,通过打造多维度的个人核心竞争力是通往财富自由,实现人生自由的不二选择。毕业后一直不忘学习提升自己,但是买了一本本书之后,看完的记不住、用不上,没看的估计很难有机会再去翻开了吧。 阅读做为知识输入的关键环节之一,起者非常大的作用。之前一直...
滴答滴答,刚刚下完雨的街道变得反光,月亮今夜也是特别的圆。 砰~“就没有一个能打的了吗?”贾克斯大声喊到。身边躺着数十个人都是被一个拿着路灯的给打倒的。周围下赌注的人开始兴奋了起来,“我赌500,他肯定不能在接着打了,在找15个打手上来。”旁边的人也跟着压钱了。 贾克斯轻蔑...
你30岁的生日根本没来得及庆祝,因为孩子下个月就要出生,全家忙成一团。 那年以后,孩子一天天长大,而你总是忘记自己的年龄。 “闺女,你多大了?大学毕业没啊?” 生完孩子后的你,身材和容貌并没有变得惨不忍睹,每每被问及年龄,内心总少不了一阵躁动,一边暗自窃喜自己的青春可人,一...10:33 提问
thinkphp3.2整合微信扫码支付模式二不执行回调
最近在用tp框架开发了一个微信支付的功能,现在的情况是能进行支付,但是并不执行我写的那个回调地址,哪位可以帮忙看看是怎么回事?
上面这个是我执行的回调路径
这个是我在微信设置的回调
这个是我做的pay.php,当访问到这里的时候会跳转到Wxpay控制器的notify方法。如果单独访问这个php,是可以在控制台输出success的,但是如果微信扫码完成以后,就不会输出,是不是就是没执行,还有
这个是微信回调notify函数,我将返回的数据存入到了test.txt中,发现什么都没有,如果单独访问pay.php,test.txt中会有11,这更加说明了回调根本就没有执行,求解!
按赞数排序
会不会微信支付那边配置出问题了
$_GET的方式指定模块控制器
有没有人帮忙啊,已经弄了两天了,还不好,急死人了
首先你单独访问你的回调地址,能不能输出test.txt,如果不行就程序执行到那里前就出现问题了
最有可能是回调链接写的有问题,是完整路径吗?
改用这个获取把,file_get_contents("php://input"),那个HTTP_RAW_POST_DATA,我记得需要开启什么东西才能那得到数据
首先你单独访问你的回调地址,能不能输出test.txt,如果不行就程序执行到那里前就出现问题了
自己给自己回答一下吧,我用的thinkphp3.2框架的,回调地址我百度了好久,以为是可以访问的就行,我就写了一个pay.php,让他访问的时候直接进入那个notify方法,一直不行,后来尝试了一下直接写路径,就是用http://你的域名/index.php/模块/控制器/方法,比如
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐微信扫码支付成功可对方没收到钱 -- 聚投诉-21CN
微信扫码支付成功可对方没收到钱
编号:CN102449
发布于 13:06:21
2月24日用微信号:133******50扫码支付1400元充值游戏,银行卡扣了款,微信显示交易成功,可对方说订单是未付款的,以前多次对该商户充值过,相信不会骗我。打微信客服电话他们说交易成功,已经到帐,让我报案。打工商银行电话说款已汇出成功确认了。但是对方商家说的确是没有收到这笔钱,说掉单会3到10天退回银行卡的,可微信客服却说钱已查明入了对方的帐上,欲哭无泪呀,微信太让人失望了!如果商家确实没有收到款,我的钱会退回来吗?照微信的说法,是商家昧了我的钱,可商家客服说查了的确没这笔钱的进帐。我该怎么办好?
已支持该投诉
微信扫一扫
合作商家平均解决率
普通商家平均解决率
今日有效投诉
昨日有效投诉
昨日投诉解决
上月有效投诉
上月投诉解决
上月无效投诉
累计有效投诉
累计投诉解决
Email 1:jts@corp.21cn.com(供投诉人使用)
热线:020-(常规上班时间接听)
Email 2:jtsodr@corp.21cn.com(供被投诉方及媒体使用)
微信扫描二维码
关注聚投诉公众号

我要回帖

更多关于 微信扫码支付失败 的文章

 

随机推荐