小程序支付后的回调处理,小程序发送模板消息

在支付完成后我们会调用回调地址,发送模板消息。具体做法如下;
之前我们有定义过一个回调地址,具体的实现方式是在你支付完成后,他会自动请求执行这个回调文件。
在这里插入图片描述
下面我们来写一个上述的回调文件paymentresult.php。

当支付完成后,服务器会自动返回一些支付后的参数给我们,所以我们要使用file_get_contents(“php://input”)方式去获取。
具体如下:

<?php
    $post = file_get_contents("php://input");
    /**支付成功返回示例 详见 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_7&index=7**
    $post = '<xml>
    <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
    <attach><![CDATA[支付测试]]></attach>
    <bank_type><![CDATA[CFT]]></bank_type>
    <fee_type><![CDATA[CNY]]></fee_type>
    <is_subscribe><![CDATA[Y]]></is_subscribe>
    <mch_id><![CDATA[10000100]]></mch_id>
    <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
    <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
    <out_trade_no><![CDATA[1409811653]]></out_trade_no>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
    <sub_mch_id><![CDATA[10000100]]></sub_mch_id>
    <time_end><![CDATA[20140903131540]]></time_end>
    <total_fee>1</total_fee>
    <coupon_fee_0><![CDATA[10]]></coupon_fee_0>
    <coupon_count><![CDATA[1]]></coupon_count>
    <coupon_type><![CDATA[CASH]]></coupon_type>
    <coupon_id><![CDATA[10000]]></coupon_id>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
    </xml>';
     **支付成功返回示例结束**/

    if($post){
   
        file_put_contents('wxpay_log.txt',$post);
        $data = getTheEscapedXml($post);
        if($data['RETURN_CODE'] == 'SUCCESS'){
   //此时返回了正确的数据,可以保存到数据库了
            echo 'SUCCESS';//先返回,后保存数据,防止后续逻辑处理过多造成网络超时
            $result = json_encode($data);
            //保存支付结果信息并且发送模板消息
            savePaymentInformation($result);

        }

        $str='<xml>
                <return_code><![CDATA[SUCCESS]]></return_code>
                <return_msg><![CDATA[OK]]></return_msg>
              </xml>';
//        echo 'SUCCESS';

    }else{
   
        file_put_contents('wxpay_log.txt','error,回调错误');
        savePaymentErrorInformation();

        echo 'ERROR';
        echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[Callback error]]></return_msg></xml>';
    }



    //保存微信支付数据
    function savePaymentInformation($result){
   
        $database = require_once '../config/ind_db.php';//引入数据库配置

        $db_user = $database['username'];  //数据库账号
        $db_pass = $database['password'];  //数据库密码

        //拼接数据库主机信息
        $dbh = $database['dsn'];


        try {
   
            //开始连接数据库
            $dbh = new PDO($dbh,$db_user,$db_pass);
            //设置字符集
            $dbh -> query('set names utf8');
            $time = time();
            $sql="INSERT INTO szdato_qyx_wxpay_callback(
                  pay_info,
             
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Ho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值