微信官方demo(php)

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    public function responseMsg()
    {
        //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

          //extract post data
        if (!empty($postStr)){
                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of xml by yourself */
                libxml_disable_entity_loader(true);
                  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                            </xml>";             
                if(!empty( $keyword ))
                {
                      $msgType = "text";
                    $contentStr = "Welcome to wechat world!";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }else{
                    echo "Input something...";
                }

        }else {
            echo "";
            exit;
        }
    }
        
    private function checkSignature()
    {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
                
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

?>

 

### 回答1: PHP微信支付demo是一个用PHP语言编写的示例程序,用于演示如何使用微信支付接口进行支付功能的开发。 首先,我们需要在微信商户平台注册一个账号,并获取到appid和secret等必要的信息。接着,在服务器端搭建好PHP环境,并安装php扩展库,如CURL和openssl等。然后,在代码中引入微信支付的SDK,并设置好必要的参数,如商户号、支付密钥等。 接下来,我们可以编写一个简单的页面,用于用户输入支付金额和其他必要的信息。当用户点击支付按钮时,会触发相应的PHP脚本。在这个脚本中,我们可以使用微信支付的SDK提供的接口,构造并发送支付请求至微信接口服务器。 微信服务器会处理我们的请求,并返回一个支付链接。我们可以将该链接作为二维码的内容,生成一个二维码图片显示给用户。用户可以使用微信App或其他支持扫码支付的工具扫描二维码进行支付。 当用户完成支付后,微信服务器会发送一个异步通知到我们预先设置好的回调地址。我们可以编写相应的回调函数来处理这个通知,验证支付结果的真实性,并更新订单状态。 最后,我们可以在页面上展示支付成功或支付失败的提示信息,并将用户重定向到相应的页面。 通过以上步骤,我们就可以实现一个简单的PHP微信支付demo,用户可以在网页上输入支付金额并完成支付。 ### 回答2: php 微信支付demo是一个示例程序,用于展示如何在php中集成微信支付功能。以下是一个简单的步骤: 首先,你需要有一个微信支付的商户号和密钥。 1. 首先,你需要在php代码中引入微信支付的SDK。你可以在微信支付开发文档中找到SDK的下载链接和使用说明。 2. 接下来,你需要配置一些基本的支付参数,例如商户号、appid、密钥等。这些配置可以在代码中定义为常量或者从配置文件中读取。 3. 创建一个支付订单。你可以根据自己的业务逻辑生成一个唯一的订单号,并设置订单的金额、商品描述等信息。然后调用微信支付的相关接口,将订单信息提交给微信支付服务器。 4. 获取支付二维码或支付链接。微信支付服务器会返回一个支付二维码或支付链接,用于让用户扫码或点击进行支付。你可以将这个二维码或链接展示给用户进行支付。 5. 处理支付结果。当用户支付完成后,微信支付服务器会将支付结果通知到你的服务器。你需要编写相应的代码来接收并处理这个支付结果,例如更新订单状态、发送通知等。 以上就是一个简单的php微信支付demo的基本步骤。当然,在实际应用中还可能涉及更复杂的逻辑和安全性的处理。建议参考微信支付官方文档和SDK说明来完善更详细和安全的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值