简言 2018-05-19 11:30:56 8030次浏览 2条评论 6 5 0

Github https://github.com/jianyan74/yii2-easy-wechat.git

基于最新的 overtrue/wechat 4.x

之前看了 max-wen/yii2-easy-wechat 不支持 overtrue/wechat 4.x ,自己改造了一下生成一个新的扩展提供下载

欢迎大家点star & pr

使用例子

微信网页授权

if(Yii::$app->wechat->isWechat && !Yii::$app->wechat->isAuthorized()) 
{
    return Yii::$app->wechat->authorizeRequired()->send();
}

获取实例

$app = Yii::$app->wechat->getApp();

微信支付(JsApi):

// 支付参数
$orderData = [ 
    'openid' => '.. '
    // ... etc. 
];

// 生成支付配置
$payment = Yii::$app->wechat->getPayApp();
$result = $payment->order->unify($orderData);
if ($result['return_code'] == 'SUCCESS')
{
    $prepayId = $result['prepay_id'];
    $config = $payment->jssdk->sdkConfig($prepayId);
}
else
{
    throw new yii\base\ErrorException('微信支付异常, 请稍后再试');
}  

return $this->render('wxpay', [
    'jssdk' => $app->jssdk, // $app通过上面的获取实例来获取
    'config' => $config
]);

JSSDK发起支付

<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
    //数组内为jssdk授权可用的方法,按需添加,详细查看微信jssdk的方法
    wx.config(<?php echo $jssdk->buildConfig(array('chooseWXPay'), true) ?>);
    // 发起支付
    wx.chooseWXPay({
        timestamp: <?= $config['timestamp'] ?>,
        nonceStr: '<?= $config['nonceStr'] ?>',
        package: '<?= $config['package'] ?>',
        signType: '<?= $config['signType'] ?>',
        paySign: '<?= $config['paySign'] ?>', // 支付签名
        success: function (res) {
            // 支付成功后的回调函数
        }
    });
</script>
觉得很赞
  • 评论于 2018-06-26 15:54 举报

    我去试一下

  • 评论于 2019-06-04 22:01 举报

    if(Yii::$app->wechat->isWechat && !Yii::$app->wechat->isAuthorized())
    {

    return Yii::$app->wechat->authorizeRequired()->send();
    

    }
    直接在控制器中用?不需要引入么?

    1 条回复
    评论于 2019-06-05 19:51 回复

    注意看文档说明,需要加入配置

您需要登录后才可以评论。登录 | 立即注册