十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
微信支付PHP开发:微信支付代码及获取支付成功;微信支付demo代码;?php;include_once("inclu;$wxPayHelper=newWxPayHel;$user_ip=$_SERVER[";$wxPayHelper-setPara;$wxPayHelper-setPara;$wxPayHe
创新互联公司2013年至今,先为川汇等服务建站,川汇等地企业,进行企业商务咨询服务。为川汇企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
微信支付PHP开发一:微信支付代码及获取支付成功数据
一、微信支付demo代码
?php
include_once("include/WxPayHelper.php"); //该文件 微信DEMO包中有,没有请到官网上下载 $commonUtil = new CommonUtil();
$wxPayHelper = new WxPayHelper();
$user_ip= $_SERVER["REMOTE_ADDR"];
$wxPayHelper-setParameter("bank_type", "WX");
$wxPayHelper-setParameter("body", "微信支付测试");
$wxPayHelper-setParameter("partner", "11111111");
$wxPayHelper-setParameter("out_trade_no", $commonUtil-create_noncestr()); $wxPayHelper-setParameter("total_fee", "1");
$wxPayHelper-setParameter("fee_type", "1");
$wxPayHelper-setParameter("notify_url", ""); $wxPayHelper-setParameter("spbill_create_ip", $user_ip);
$wxPayHelper-setParameter("input_charset", "UTF-8");
?
html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content-Type" meta content="no-cache,must-revalidate" http-equiv="Cache-Control"
meta content="no-cache" http-equiv="pragma"
meta content="0" http-equiv="expires"
meta content="telephone=no, address=no" name="format-detection"
meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1,
minimum-scale=1, width=device-width, height=device-height" /
meta name="apple-mobile-web-app-capable" content="yes" / !-- apple devices fullscreen -- meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /
title在线支付测试/title
/head
script language="javascript"
function callpay()
{
WeixinJSBridge.invoke('getBrandWCPayRequest',?php echo
$wxPayHelper-create_biz_package(); ?,function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
//因此微信团队建议,当收到ok返回时,向商户后台询问是否收到交易成功的通知,若收到通知,前端展示交易成功的界面;若此时未收到通知,商户后台主动调用查询订单接口,查询订单的当前状态,并反馈给前端展示相应的界面。
document.getElementById("zhifu").style.display='none';
document.getElementById("successDiv").style.display='block';
}
WeixinJSBridge.log(res.err_msg);
//alert(res.err_code+res.err_desc+res.err_msg);
});
}
/script
body
div id="zhifu"
button type="button" onClick="callpay()"立即在线支付/buttonbrbr
/div
div id="successDiv" style="display:none"
h1支付成功/h1
/div
/body
/html
二、获取微信支付成功订单信息的方法
1、 支付成功通知的内容可以使用 $_GET 获取订单信息
2、用 $GLOBALS["HTTP_RAW_POST_DATA"] 代码获取
postDATA XML -------------------- xml OpenId![CDATA[111222]]/OpenId AppId![CDATA[wwwwb4f85f3a797777]]/AppId IsSubscribe1/IsSubscribe TimeStamp 1369743511/TimeStamp NonceStr![CDATA[jALldRTHAFd5Tgs5]]/NonceStr AppSignature![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]] /AppSignature SignMethod![CDATA[sha1]]/ SignMethod
/xml
//接收微信后台发送过来的消息,该消息数据结构为XML,不是php默认的识别数据类型 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//使用simplexml_load_string() 函数将接收到的XML消息数据载入对象$postObj中。 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement',
LIBXML_NOCDATA);
$OpenId = $postObj-postObj; //可以这样获取XML里面的信息
只有“notify_url”页面没有输出“success” 微信后台会自动按时间进行补单。重新发送支付成功的商品订单信息。
目前补单机制的间隔时间为:8s、10s、10s、30s、30s、60s、120s、360s、1000s。
注:开发测试时,可以在程序里面 加入如下代码。
用 Txt文档保存 接收到的信息 便于调试。 相应目录下要有 api.txt文件
$order = $_GET; //获取订单信息
$fp = fopen('api.txt','a+');
fwrite($fp,"\n _______GET________");
fwrite($fp,var_export($order,true));
fwrite($fp,"\n ________postObj________");
fwrite($fp,var_export($postObj,true));
fwrite($fp,'【 Now 】: '. date("Y-m-d H:i:s") ."\n");
fclose($fp);
亲,设置一下Notepad2的编码方式就好了,“文件”-“编码”-“UTF-8 包含签名(s)",参考下图:
我做过QQ、微博登录,思路应该差不多。
要注意,QQ和微博登录post过去后,会返回一个“唯一码” 这个“唯一码” 对于每一个QQ、微博用户是唯一的(QQ不提供QQ号码、微博好像是提供一个uid)。
在数据库保存这个“唯一码”,并且与本地数据库会员username或者uid相关联即可。
如果QQ、微博登录成功后,根据“唯一码”查找本地会员username,如果存在,则直接session或者cookies保存登录成功,
如果不存在,则自动入库新会员(或者跳转到注册会员页面,让用户注册并绑定新会员)。
当然,我说的“唯一码” QQ、微信上未必是这样称呼,你自己看看SDK文档,就知道那个是我说的“唯一码”。
你好,可以用客服消息接口或模板消息接口实现。但是需要认证公众号才能有权限。
认证服务号可以发送客服接口消息[需要对应openid24小时内有互动]和模板消息,订阅号则没有模板消息权限。
发送文字消息示例:
$postdata ='{"touser":"o5BkRs_vRwfPqAb1ceXHfJDzmQ5o","msgtype":"text","text":{"content":"Hello World"}}';
$opts = array(
'http' = array(
'method' = 'POST',
'Content-Length' = strlen($postdata),
'Host' = 'api.weixin.qq.com',
'Content-Type' = 'application/json',
'content' = $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('你的access_token', true, $context);
echo $result;
private function receiveEvent($object)
{
$contentStr = "";
switch ($object-Event)
{
case "subscribe":
$contentStr = "欢迎 ";
if (isset($object-EventKey)){
$contentStr = "关注二维码场景 ".$object-EventKey;
}
break;
case "SCAN":
$contentStr = "扫描 ".$object-EventKey;
//要实现统计分析,则需要扫描事件写入数据库,这里可以记录 EventKey及用户OpenID,扫描时间
break;
default:
break;
}
$resultStr = $this-transmitText($object, $contentStr);
return $resultStr;
PHP连接数据库之PHP连接MYSQL数据库代码
?php
$mysql_server_name='localhost';
//改成自己的mysql数据库服务器
$mysql_username='root';
//改成自己的mysql数据库用户名
$mysql_password='12345678';
//改成自己的mysql数据库密码
$mysql_database='mycounter';
//改成自己的mysql数据库名
$conn=mysql_connect($mysql_server_name,
$mysql_username,$mysql_password,
$mysql_database);
$sql='CREATE DATABASE mycounter
DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
';
mysql_query($sql);
$sql='CREATE TABLE `counter`
(`id` INT(255) UNSIGNED NOT NULL
AUTO_INCREMENT ,`count` INT(255)
UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY
( `id` ) ) TYPE = innodb;';
mysql_select_db($mysql_database,$conn);
$result=mysql_query($sql);
//echo $sql;
mysql_close($conn);
echo "Hello!数据库mycounter已经成功建立!";
?
PHP连接数据库之PHP连接ACCESS数据库代码方法
?
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft
Access Driver (*.mdb)};
DBQ=". realpath("data/db.mdb");
$conn-Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs-Open("select *
from szd_t",$conn,1,1);
while(! $rs-eof) {
$f = $rs-Fields(1);
echo $f-value;
$rs-MoveNext();
}
?