热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

包含php微信app原路返回的词条

本文目录一览:1、PHP微信扫码支付成功后,怎么给微信返回succ

本文目录一览:


  • 1、PHP微信扫码支付成功后,怎么给微信返回succ


  • 2、微信扫码支付2 支付成功后是如何返回给微信参数通知处理成功 (php版)


  • 3、php版微信返回用户text输入的方法


  • 4、php结合app微信登录 php需要做什么操作


  • 5、PHP怎么解析微信支付结果返回的xml

PHP微信扫码支付成功后,怎么给微信返回succ

微信支付已经由微信接管了,此时是微信通过回调的方式来通知我们的业务服务器端用户的支付状态

微信扫码支付2 支付成功后是如何返回给微信参数通知处理成功 (php版)

已解决 请问微信支付V3,在支付成功后通过哪个回调的值更新订单状态呢?

?php

ini_set('date.timezone','Asia/Shanghai');

// error_reporting(E_ERROR);

error_reporting(0);

require_once "WxPay.Api.php";

require_once 'log.php';

require_once("../../includes/mysql.class.php");

//初始化日志

// $logHandler= new CLogFileHandler("./logs/".date('Y-m-d').'.log');

// $log = Log::Init($logHandler, 15);

$xml = $GLOBALS['HTTP_RAW_POST_DATA'];

//禁止引用外部xml实体

$successdata=xmlToArray($xml);

// file_put_contents('log.txt',json_encode($successdata));

function xmlToArray($xml)

{

//将XML转为array

$array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

return $array_data;

}

// function printf_info($data)

// {

// foreach($data as $key=$value){

// echo "font color='#f00;'$key/font : $value br/";

// }

// }

$out_trade_no=$successdata['out_trade_no'];

if(!empty($out_trade_no)){

$input = new WxPayOrderQuery();

$input-SetOut_trade_no($out_trade_no);

$result=WxPayApi::orderQuery($input);

// printf_info($result);

if(array_key_exists("return_code", $result) array_key_exists("result_code", $result) $result["return_code"] == "SUCCESS" $result["result_code"] == "SUCCESS")

{

//file_put_contents('log.txt','支付成功'.$out_trade_no.$pid.$tel.$numbers.$poss);

//支付成功

//改变订单状态

$sql="update pai_deposit set status='1',paytime='".date("Y-m-d H:i:s")."' where out_trade_no='{$out_trade_no}'";

// file_put_contents('log.txt',$sql);

$con=new connection();

$result=$con-Query($sql);

echo "success";

$openid=$successdata['openid'];

$total_fee=$successdata['total_fee']*0.01;

$attach=$successdata['attach'];

$sql="select * from pai_deposit where out_trade_no='{$out_trade_no}'";

$result_deposit=$con-QueryArray($sql);

$sql="select * from paipro where id='".$result_deposit[0]['pid']."'";

$result_pro=$con-QueryArray($sql);

sendmsg($openid,$total_fee,$result_pro[0]['title'],$out_trade_no,$result_deposit[0]['tel']);

exit();

}

echo 'fail';

exit();

}

else

{

//file_put_contents('log.txt','支付失败2'.$out_trade_no);

echo 'fail';

exit();

}

function sendmsg($wxid,$total,$title,$order_id,$tel)

{

$access_token=new_access_token();

$url = ''.$access_token;

$w_title="付款成功通知";

// $w_url='http://'.$_SERVER['HTTP_HOST']."/mobile/user.php?act=fenxiao1wxid=".$wxid;

$w_url='';

$rtime=date("Y-m-d H:i:s");

$w_description="订单编号:{$order_id}\r\n保证金:¥{$total}元\r\n商品详情:{$title}\r\n联系电话:{$tel}\r\n付款时间:{$rtime}";

$post_msg = '{

"touser":"'.$wxid.'",

"msgtype":"news",

"news":{

"articles": [

{

"title":"'.$w_title.'",

"description":"'.$w_description.'",

"url":"'.$w_url.'",

"picurl":"'.$w_picurl.'"

}

]

}

}';

$ret_json = curl_grab_page($url, $post_msg);

$ret = json_decode($ret_json);

if($ret-errmsg != 'ok')

{

$access_token = new_access_token();

$url = ''.$access_token;

$ret_json = curl_grab_page($url, $post_msg);

$ret = json_decode($ret_json);

}

}

function curl_grab_page($url, $data, $proxy = '', $proxystatus = '', $ref_url = '') {

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

curl_setopt($ch, CURLOPT_TIMEOUT, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if ($proxystatus == 'true') {

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);

curl_setopt($ch, CURLOPT_PROXY, $proxy);

}

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_URL, $url);

if (!empty($ref_url)) {

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_REFERER, $ref_url);

}

if (defined('CURLOPT_IPRESOLVE') defined('CURL_IPRESOLVE_V4')) {

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

}

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

ob_start();

return curl_exec ($ch);

ob_end_clean();

curl_close ($ch);

unset($ch);

}

function new_access_token() {

$appid = 'wx52dc8c34087d302c';

$appsecret ='d70878f040f08fa55766bf6d3db5508a';

$time = time();

$url = ";appid=$appidsecret=$appsecret";

$ret_json = curl_get_contents($url);

$ret = json_decode($ret_json);

return $ret-access_token;

}

function curl_get_contents($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 1);

curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);

curl_setopt($ch, CURLOPT_REFERER, _REFERER_);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if (defined('CURLOPT_IPRESOLVE') defined('CURL_IPRESOLVE_V4')) {

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

}

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$r = curl_exec($ch);

curl_close($ch);

return $r;

}

?

参考地址

已解决 请问微信支付V3,在支付成功后通过哪个回调的值更新订单状态呢?

php版微信返回用户text输入的方法

本文实例讲述了php版微信返回用户text输入的方法。分享给大家供大家参考,具体如下:

获得用户输入的内容,并发回相同内容

//获取post数据

//

$PostData

=

$HTTP_RAW_POST_DATA;

$PostData

=

file_get_contents("php://input");

//判断POST是否为空

if(!$PostData){

echo

"wrong

input!";

exit(0);

}

//解析XML字符串

$xmlObj

=

simplexml_load_string($PostData,

'SimpleXMLElement',

LIBXML_NOCDATA);

if(!$xmlObj){

echo

"wrong

input!";

exit(0);

}

//获取数据

$fromUserName

=

$xmlObj-FromUserName;

$toUserName

=

$xmlObj-ToUserName;

$msgType

=

$xmlObj-MsgType;

//返回用户输入

if('text'

!=

$msgType){

//不是文本,输出错误提示消息

$retMsg

=

"只支持文本消息";

}

//用户输入文本

else{

$content

=

$xmlObj-Content;

$retMsg

=

$content;

}

//输出xml模板

$retTmp

=

"xml

ToUserName![CDATA[%s]]/ToUserName

FromUserName![CDATA[%S]]/FromUserName

CreateTime%s/CreateTime

MsgType![CDATA[text]]/MsgType

Content![CDATA[%s]]/Content

FuncFlag0/FuncFlag

/xml";

//对消息中的通配符进行替换

$resultStr

=

sprintf($retTmp,

$fromUserName,

$toUserName,

time(),

$retMsg);

//输出xml的消息

echo

$resultStr

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

php结合app微信登录 php需要做什么操作

1、app单独做微信授权登录获取到unionid

2、app根据unionid请求服务器(php),服务器判断是否有该会员,如果没有就做注册,如有已经有了直接就返回会员信息

3、就是app请求的时候尽量吧app的平台信息(比如安卓或者ios)一起发给服务器。服务器好做登录记录

PHP怎么解析微信支付结果返回的xml

$input = file_get_contents('php://input');

if (!empty($input)  empty($_GET['out_trade_no'])) {

    $obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);

    $data = json_decode(json_encode($obj), true);

    //根据$data处理自己所要的逻辑

}

$data具体参数看微信文档,最常用的是:out_trade_no(商户订单号)、transaction_id(微信交易号)、result_code(交易状态)

交易状态如果是success记得处理完逻辑后返回一个success,不然微信会认为你的处理未完成而继续向服务器发送请求


推荐阅读
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
author-avatar
咔西咔嘻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有