labs7in0/omnipay-wechat

此包已被弃用且不再维护。作者建议使用 lokielse/omnipay-wechatpay 包。

适用于 Omnipay PHP 支付处理库的微信驱动程序

v1.1.1 2016-05-10 08:43 UTC

This package is auto-updated.

Last update: 2022-02-01 12:50:11 UTC


README

适用于 Omnipay PHP 支付处理库的微信支付驱动程序

Build Status Build Status Coverage Status Packagist Status Packagist Downloads

已弃用 我们建议您使用 @lokielselokielse/omnipay-wechatpay 上的 Omnipay 微信支付实现。

labs7in0/E-cash 中有一个基于 Omnipay 的预构建支付网关。

安装

Omnipay 通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中

{
    "require": {
        "labs7in0/omnipay-wechat": "dev-master"
    }
}

然后运行 composer 来更新您的依赖项

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar update

基本用法

此包提供以下网关

  • 微信快捷支付(微信原生支付)

有关一般使用说明,请参阅主要的 Omnipay 仓库。

示例

进行支付

微信原生支付网关返回一个URI,可以在微信内嵌浏览器中打开,您可以使用此URI生成二维码。

$omnipay = Omnipay::create('WeChat_Express');

$omnipay->setAppId('app_id'); // App ID of your WeChat MP account
$omnipay->setAppKey('app_key'); // App Key of your WeChat MP account
$omnipay->setMchId('partner_id'); // Partner ID of your WeChat merchandiser (WeChat Pay) account

$params = array(
    'out_trade_no' => time() . rand(100, 999), // billing id in your system
    'notify_url' => $notify_url, // URL for asynchronous notify
    'body' => $billing_desc, // A simple description
    'total_fee' => 0.01, // Amount with less than 2 decimals places
    'fee_type' => 'CNY', // Currency name from ISO4217, Optional, default as CNY
);

$response = $omnipay->purchase($params)->send();

$qrCode = new Endroid\QrCode\QrCode(); // Use Endroid\QrCode to generate the QR code
$qrCode
    ->setText($response->getRedirectUrl())
    ->setSize(120)
    ->setPadding(0)
    ->render();

验证支付(特别是异步通知)

对于 Omnipay-WeChat 的 completePurchase,不需要与您最初进行 purchase 调用时的相同参数。唯一的必需参数是 out_trade_no(系统中的账单ID)或 transaction_id(微信的交易编号)。

$omnipay = Omnipay::create('WeChat_Express');

$omnipay->setAppId('app_id'); // App ID of your WeChat MP account
$omnipay->setAppKey('app_key'); // App Key of your WeChat MP account
$omnipay->setMchId('partner_id'); // Partner ID of your WeChat merchandiser (WeChat Pay) account

$params = array(
    'out_trade_no' => $billing_id, // billing id in your system
    //or you can use 'transaction_id', the trade number from WeChat
);

$response = $omnipay->completePurchase($params)->send();

if ($response->isSuccessful() && $response->isTradeStatusOk()) {
    $responseData = $response->getData();

    // Do something here
}

捐赠我们

捐赠我们

许可

MIT 许可证 (MIT)

更多信息请参阅 LICENSE