PHP code example of xwzj / wechat

1. Go to this page and download the library: Download xwzj/wechat library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

xwzj / wechat example snippets




//tp或其他框架可以直接在控制器中使用,无需引入自动加载类
��以根据需求捕获异常信息
try{
    //配置商户秘钥
    $config = ['partnerkey'=>'支付秘钥,用于签名验证'];
    $inputObj = new WxPayUnifiedOrder($config);
    //支付类型:JSAPI,NATIVE,APP,
    $inputObj->SetTrade_type('APP');

    //设置商品或支付单简要描述
    $inputObj->SetBody('摩推支付');

    //用户唯一标识
    $inputObj->SetOpenid('gvdbgdsnbggcc');

    //商户订单号
    $inputObj->SetOut_trade_no('gvdbgdsnbggcc');

    //支付回调url
    $inputObj->SetNotify_url('http://');

    //设置appid
    $inputObj->SetAppid('vfdsbfdsbfdsdf');

    //设置商户号
    $inputObj->SetMch_id('vcdsbgffsbfd');

    //设置支付价格,单位:分
    $inputObj->SetTotal_fee(5*100);

    //请求统一下单接口,获取预支付交易会话ID
    $wx_pay = $inputObj->unifiedOrder();

    if($wx_pay['return_code']!="SUCCESS" || $wx_pay['result_code'] !="SUCCESS")
    {
        $msg = empty($wx_pay['err_code_des'])?$wx_pay['return_msg']:$wx_pay['err_code_des'];
        throw new WxPayException($msg);
    }elseif ($wx_pay['trade_type']=='NATIVE'){
        //扫码支付不需要再次签名,可以直接获取url
        //code_url的值并非固定,使用时按照URL格式转成二维码即可
        return $wx_pay['code_url'];
    }
    $data = $inputObj->getPayInfo($wx_pay);
}catch (\Exception $e){
    echo $e->getMessage();
}


//处理回调方式一
//tp或其他框架可以直接在控制器中使用,无需引入自动加载类
y_notify = new \Wechat\Pay\WxPayNotify($config);

return $pay_notify->notify(function ($result){
    //处理支付通知
});


//处理回调方式二
class Notify extends \Wechat\Pay\WxPayNotify
{
    protected $partnerkey = '支付秘钥';
    public function NotifyProcess($data)
    {
        //处理支付通知
    }
}



//tp或其他框架可以直接在控制器中使用,无需引入自动加载类
�']);

//商户订单号,微信支付订单号两者至少要有一个
$inputObj->SetOut_trade_no('退款订单对应的订单号');

$inputObj->SetTransaction_id('微信支付订单号');

$inputObj->SetOut_refund_no('商户内部退款订单号');

$inputObj->SetTotal_fee('订单总金额');

$inputObj->SetRefund_fee('退款金额');

$inputObj->SetOp_user_id('设置操作员账号,可以直接使用商户号');

//请求退款
$data = $inputObj->refund();



//tp或其他框架可以直接在控制器中使用,无需引入自动加载类
�证']);

$inputObj->SetAppid('应用的唯一标识');

$inputObj->SetMch_id('商户号');

$inputObj->SetProduct_id('商品ID');

//获取二维码内容
$qr_code_content = $inputObj->bizpayurl();

//生成二维码,可以使用QRCode生成二维码在保存在本地。前端使用二维码url访问即可




//tp或其他框架可以直接在控制器中使用,无需引入自动加载类
tch (strtolower($push_data['MsgType'])){
        case 'event':
            switch (strtolower($push_data['Event'])){
                case 'subscribe':
                    //关注关注事件,这里分为直接关注事件和扫描带参数二维码事件,还未关注时的事件推送
                    return $send_obj->text('欢迎关注公众号');
                    break;
                case 'unsubscribe':
                    //取消关注事件
                    break;
                case 'SCAN':
                    //扫描带参数二维码事件,用户已关注时的事件推送
                    break;
                case 'LOCATION':
                    //上报地理位置事件
                    break;
                case 'CLICK':
                    //自定义菜单事件
                    break;
            }
            break;
        case 'text':
            //文本消息
            break;
        case 'image':
            //图片消息
            break;
        case 'voice':
            //语音消息
            break;
        case 'video':
            //视频消息
            break;
        case 'shortvideo':
            //小视频消息
            break;
        case 'location':
            //地理位置消息
            break;
        case 'link':
            //链接消息
            break;
    }
});


//实例化用户信息类
$wxuser = new WxUser(['appid'=>'小程序唯一标识','appSecret'=>'小程序秘钥']);
//小程序授权获取用户信息
//code:  wx.login()返回的code码
return $wxuser->getWeAppAuthInfo($code);

//获取access_token
$wxuser->getAccessToken();

//发送模板消息