Skip to content

工具

提供各种支付需要的配置生成方法。

配置

php
<?php
use EasyWeChat\Pay\Application;

$config = [...];

$app = new Application($config);

$utils = $app->getUtils();

注意

生成支付 JS 配置

有四种发起支付的方式:WeixinJSBridge, JSSDK, 小程序支付, APP

WeixinJSBridge 调起支付 API

📖 官方文档 - WeixinJSBridge 调起支付

php
$appId = '商户申请的公众号对应的 appid,由微信支付生成,可在公众号后台查看';
$signType = 'RSA'; // 默认RSA,v2要传MD5
$config = $utils->buildBridgeConfig($prepayId, $appId, $signType); // 返回数组

调用示例

js
WeixinJSBridge.invoke(
  'getBrandWCPayRequest',
  {
    timeStamp: "<?= $config['timeStamp'] ?>", //注意 timeStamp 的格式
    nonceStr: "<?= $config['nonceStr'] ?>",
    package: "?= $config['package'] ?>",
    signType: "<?= $config['signType'] ?>",
    paySign: "<?= $config['paySign'] ?>" // 支付签名
  },
  function (res) {
    if (res.err_msg == 'get_brand_wcpay_request:ok') {
      // 使用以上方式判断前端返回,微信团队郑重提示:
      // res.err_msg将在用户支付成功后返回
      // ok,但并不保证它绝对可靠。
    }
  }
)

JSSDK 调起支付 API

📖 官方文档 - wx.chooseWXPay 调起支付

php
$appId = '商户申请的公众号对应的 appid,由微信支付生成,可在公众号后台查看';
$signType = 'RSA'; // 默认RSA,v2要传MD5
$config = $utils->buildSdkConfig($prepayId, $appId, $signType); // 返回数组

调用实例:

js
wx.chooseWXPay({
  timestamp: "<?= $config['timestamp'] ?>",
  nonceStr: "<?= $config['nonceStr'] ?>",
  package: "<?= $config['package'] ?>",
  signType: "<?= $config['signType'] ?>",
  paySign: "<?= $config['paySign'] ?>",
  success: function (res) {
    // 支付成功后的回调函数
  }
})

小程序调起支付 API

📖 官方文档 - 小程序调起支付 API

php
$appId = '商户申请的小程序对应的appid,由微信支付生成,可在小程序后台查看';
$signType = 'RSA'; // 默认RSA,v2要传MD5
$config = $utils->buildMiniAppConfig($prepayId, $appId, $signType); // 返回数组

调用示例:

js
wx.requestPayment({
  timeStamp: "<?= $config['timeStamp'] ?>",
  nonceStr: "<?= $config['nonceStr'] ?>",
  package: "<?= $config['package'] ?>",
  signType: "<?= $config['signType'] ?>",
  paySign: "<?= $config['paySign'] ?>",
  success: function (res) {
    // 支付成功后的回调函数
  }
})

APP 调起支付 API

📖 官方文档 - APP 调起支付 API

php
$appId = '商户申请的公众号对应的appid,由微信支付生成,可在公众号后台查看';
$config = $utils->buildAppConfig($prepayId, $appId); // 返回数组

调用示例:官方文档 - APP 调起支付 API

使用微信支付公钥加密敏感字段

📖 官方文档 - 如何使用微信支付公钥加密敏感字段

php
$config = [
   'platform_certs' => [
       // 如果是「平台证书」模式
       //    可简写使用平台证书文件绝对路径
       // '/path/to/wechatpay/cert.pem',

       // 如果是「平台公钥」模式
       //    使用Key/Value结构, key为平台公钥ID,value为平台公钥文件绝对路径
       // "{$pubKeyId}" => '/path/to/wechatpay/pubkey.pem',
   ],
];
//使用微信支付公钥加密敏感字段可传入$serial,或不传默认取第一个证书
$encrypted = $utils->createRasEncrypt($plaintext, $serial); // 返回加密后数据

调用示例:官方文档 - 如何使用微信支付公钥加密敏感字段

二维码生成工具推荐

❤️ 建议由前端生成二维码

确实需要用 PHP 生成二维码,那么以下这些供参考:

Released under the MIT License.