Skip to content

sunnnnnner/WeChatDeveloper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeChatDeveloper for PHP

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads PHP Version Require License

  • WeChatDeveloper 是基于 wechat-php-sdk 重构,优化并完善;
  • 运行最底要求 PHP 版本 5.4 , 建议在 PHP7 上运行以获取最佳性能;
  • 目前 WeChatDeveloper 针对 access_token 失效增加了自动刷新机制;
  • 微信的部分接口需要缓存数据在本地,因此配置目录并需要对目录有写权限;
  • 我们鼓励大家使用 composer 来管理您的第三方库,方便后期更新操作;
  • WeChatDeveloper 已历经数个线上项目考验,欢迎 fork 或 star 此项目。
  • 微信商户已经支持 v2 和 v3 接口,未加入的接口可以使用通用方式调用。

功能描述

  • 微信小程序,服务端接口支持
  • 微信认证服务号,服务端接口支持
  • 微信支付(账单、卡券、红包、退款、转账、App支付、JSAPI支付、Web支付、扫码支付等)
  • 支付宝支付(账单、转账、App支付、刷卡支付、扫码支付、Web支付、Wap支付等)

技术帮助

PHP开发技术交流(QQ群 513350915)

PHP微信开发群 (SDK)

WeChatDeveloper 是基于官方接口封装,在做微信开发前,必需先阅读微信官方文档。

针对 WeChatDeveloper 也有一准备了帮助资料可供参考。

代码仓库

WeChatDeveloper 为开源项目,允许把它用于任何地方,不受任何约束,欢迎 fork 项目。

文件说明(后续会根据官方文档增加文件)

文件名 类名 描述 类型 加载 ①
App.php AliPay\App 支付宝App支付 支付宝支付 \We::AliPayApp()
Bill.php AliPay\Bill 支付宝账单下载 支付宝支付 \We::AliPayBill()
Pos.php AliPay\Pos 支付宝刷卡支付 支付宝支付 \We::AliPayPos()
Scan.php AliPay\Scan 支付宝扫码支付 支付宝支付 \We::AliPayScan()
Transfer.php AliPay\Transfer 支付宝转账 支付宝支付 \We::AliPayTransfer()
Wap.php AliPay\Wap 支付宝Wap支付 支付宝支付 \We::AliPayWap()
Web.php AliPay\Web 支付宝Web支付 支付宝支付 \We::AliPayWeb()
Card.php WeChat\Card 微信卡券接口支持 认证服务号 \We::WeChatCard()
Custom.php WeChat\Custom 微信客服消息接口支持 认证服务号 \We::WeChatCustom()
Media.php WeChat\Media 微信媒体素材接口支持 认证服务号 \We::WeChatMedia()
Oauth.php WeChat\Oauth 微信网页授权消息类接口 认证服务号 \We::WeChatOauth()
Pay.php WeChat\Pay 微信支付类接口 认证服务号 \We::WeChatPay()
Product.php WeChat\Product 微信商店类接口 认证服务号 \We::WeChatProduct()
Qrcode.php WeChat\Qrcode 微信二维码接口支持 认证服务号 \We::WeChatQrcode()
Receive.php WeChat\Receive 微信推送事件消息处理支持 认证服务号 \We::WeChatReceive()
Scan.php WeChat\Scan 微信扫一扫接口支持 认证服务号 \We::WeChatScan()
Script.php WeChat\Script 微信前端JSSDK支持 认证服务号 \We::WeChatScript()
Shake.php WeChat\Shake 微信蓝牙设备揺一揺接口 认证服务号 \We::WeChatShake()
Tags.php WeChat\Tags 微信粉丝标签接口支持 认证服务号 \We::WeChatTags()
Template.php WeChat\Template 微信模板消息接口支持 认证服务号 \We::WeChatTemplate()
User.php WeChat\User 微信粉丝管理接口支持 认证服务号 \We::WeChatCard()
Wifi.php WeChat\Wifi 微信门店WIFI管理支持 认证服务号 \We::WeChatWifi()
Draft.php WeChat\Draft 微信草稿箱 认证服务号 \We::WeChatDraft()
Freepublish.php WeChat\Freepublish 微信发布能力 认证服务号 \We::WeChatFreepublish()
Bill.php WePay\Bill 微信商户账单及评论 微信支付 \We::WePayBill()
Coupon.php WePay\Coupon 微信商户代金券 微信支付 \We::WePayCoupon()
Order.php WePay\Order 微信商户订单 微信支付 \We::WePayOrder()
Redpack.php WePay\Redpack 微信红包支持 微信支付 \We::WePayRedpack()
Refund.php WePay\Refund 微信商户退款 微信支付 \We::WePayRefund()
Transfers.php WePay\Transfers 微信商户打款到零钱 微信支付 \We::WePayTransfers()
TransfersBank.php WePay\TransfersBank 微信商户打款到银行卡 微信支付 \We::WePayTransfersBank()
Crypt.php WeMini\Crypt 微信小程序数据加密处理 微信小程序 \We::WeMiniCrypt()
Plugs.php WeMini\Plugs 微信小程序插件管理 微信小程序 \We::WeMiniPlugs()
Poi.php WeMini\Poi 微信小程序地址管理 微信小程序 \We::WeMiniPoi()
Qrcode.php WeMini\Qrcode 微信小程序二维码管理 微信小程序 \We::WeMiniCrypt()
Template.php WeMini\Template 微信小程序模板消息支持 微信小程序 \We::WeMiniTemplate()
Total.php WeMini\Total 微信小程序数据接口 微信小程序 \We::WeMiniTotal()

安装使用

1.1 通过 Composer 来管理安装

# 首次安装 线上版本(稳定)
composer require zoujingli/wechat-developer

# 首次安装 开发版本(开发)
composer require zoujingli/wechat-developer dev-master

# 更新 WeChatDeveloper
composer update zoujingli/wechat-developer

1.2 如果不使用 Composer, 可以下载 WeChatDeveloper 并解压到项目中

# 在项目中加载初始化文件
include "您的目录/WeChatDeveloper/include.php";

2.1 接口实例所需参数

$config = [
    'token'          => 'test',
    'appid'          => 'wx60a43dd8161666d4',
    'appsecret'      => '71308e96a204296c57d7cd4b21b883e8',
    'encodingaeskey' => 'BJIUzE0gqlWy0GxfPp4J1oPTBmOrNDIGPNav1YFH5Z5',
    // 配置商户支付参数(可选,在使用支付功能时需要)
    'mch_id'         => "1235704602",
    'mch_key'        => 'IKI4kpHjU94ji3oqre5zYaQMwLHuZPmj',
    // 配置商户支付双向证书目录(可选,在使用退款|打款|红包时需要)
    'ssl_key'        => '',
    'ssl_cer'        => '',
    // 缓存目录配置(可选,需拥有读写权限)
    'cache_path'     => '',
];

3.1 实例指定接口

try {

    // 实例对应的接口对象
    $user = new \WeChat\User($config);
    
    // 调用接口对象方法
    $list = $user->getUserList();
    
    // 处理返回的结果
    echo '<pre>';
    var_export($list);
    
} catch (Exception $e) {

    // 出错啦,处理下吧
    echo $e->getMessage() . PHP_EOL;
    
}

微信支付

  // 创建接口实例
  $wechat = new \WeChat\Pay($config);
  
  // 组装参数,可以参考官方商户文档
  $options = [
      'body'             => '测试商品',
      'out_trade_no'     => time(),
      'total_fee'        => '1',
      'openid'           => 'o38gpszoJoC9oJYz3UHHf6bEp0Lo',
      'trade_type'       => 'JSAPI',
      'notify_url'       => 'http://a.com/text.html',
      'spbill_create_ip' => '127.0.0.1',
  ];
    
try {

    // 生成预支付码
    $result = $wechat->createOrder($options);
    
    // 创建JSAPI参数签名
    $options = $wechat->createParamsForJsApi($result['prepay_id']);
    
    // @todo 把 $options 传到前端用js发起支付就可以了
    
} catch (Exception $e) {

    // 出错啦,处理下吧
    echo $e->getMessage() . PHP_EOL;
    
}
  • 更多功能请阅读测试代码或SDK封装源码

支付宝支付

  • 支付参数配置(可用沙箱模式)
$config = [
    // 沙箱模式
    'debug'            => true,
    // 签名类型 ( RSA|RSA2 )
    'sign_type'        => 'RSA2',
    // 应用ID
    'appid'            => '2021000122667306',
    // 应用私钥内容 ( 需1行填写,特别注意:这里的应用私钥通常由支付宝密钥管理工具生成 )
    'private_key'      => 'MIIEowIBAAKCAQEAn...',
    // 公钥模式,支付宝公钥内容 ( 需1行填写,特别注意:这里不是应用公钥而是支付宝公钥,通常是上传应用公钥换取支付宝公钥,在网页可以复制 )
    'public_key'       => '',
    // 证书模式,应用公钥证书路径 ( 新版资金类接口转 app_cert_sn,如文件 appCertPublicKey.crt )
    'app_cert_path'    => __DIR__ . '/alipay/appPublicCert.crt', // 'app_cert' => '证书内容',
    // 证书模式,支付宝根证书路径 ( 新版资金类接口转 alipay_root_cert_sn,如文件 alipayRootCert.crt )
    'alipay_root_path' => __DIR__ . '/alipay/alipayRootCert.crt', // 'root_cert' => '证书内容',
    // 证书模式,支付宝公钥证书路径 ( 未填写 public_key 时启用此参数,如文件 alipayPublicCert.crt )
    'alipay_cert_path' => __DIR__ . '/alipay/alipayPublicCert.crt', // 'public_key' => '证书内容'
    // 支付成功通知地址
    'notify_url'       => '',
    // 网页支付回跳地址
    'return_url'       => '',
];
  • 支付宝发起PC网站支付
// 参考公共参数  https://docs.open.alipay.com/203/107090/
$config['notify_url'] = 'http://pay.thinkadmin.top/test/alipay-notify.php';
$config['return_url'] = 'http://pay.thinkadmin.top/test/alipay-success.php';

try {
    
    // 实例支付对象
    $pay = We::AliPayWeb($config);
    // $pay = new \AliPay\Web($config);
    
    // 参考链接:https://docs.open.alipay.com/api_1/alipay.trade.page.pay
    $result = $pay->apply([
        'out_trade_no' => time(), // 商户订单号
        'total_amount' => '1',    // 支付金额
        'subject'      => '支付订单描述', // 支付订单描述
    ]);
    
    echo $result; // 直接输出HTML(提交表单跳转)
    
} catch (Exception $e) {

    // 异常处理
    echo $e->getMessage();
    
}
  • 支付宝发起手机网站支付
// 参考公共参数  https://docs.open.alipay.com/203/107090/
$config['notify_url'] = 'http://pay.thinkadmin.top/test/alipay-notify.php';
$config['return_url'] = 'http://pay.thinkadmin.top/test/alipay-success.php';

try {

    // 实例支付对象
    $pay = We::AliPayWap($config);
    // $pay = new \AliPay\Wap($config);

    // 参考链接:https://docs.open.alipay.com/api_1/alipay.trade.wap.pay
    $result = $pay->apply([
        'out_trade_no' => time(), // 商户订单号
        'total_amount' => '1',    // 支付金额
        'subject'      => '支付订单描述', // 支付订单描述
    ]);

    echo $result; // 直接输出HTML(提交表单跳转)

} catch (Exception $e) {

    // 异常处理
    echo $e->getMessage();

}
  • 更多功能请阅读测试代码或SDK封装源码

版权说明

WeChatDeveloper 遵循 MIT 开源协议发布,并免费提供使用。

本项目包含的第三方源码和二进制文件的版权信息将另行标注,请在对应文件查看。

版权所有 Copyright © 2014-2023 by ThinkAdmin (https://thinkadmin.top) All rights reserved。

赞助打赏,请作者喝杯茶 ~

赞助

About

【新】微信服务号+微信小程序+微信支付+支付宝支付

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%