maxwen / yii2-easy-wechat
WeChat SDK for yii2, based on overtrue/easywechat
1.0.3
2017-08-11 05:09 UTC
Requires
- overtrue/wechat: ~3.0
- yiisoft/yii2: ~2.0.6
README
WeChat SDK for yii2 , based on overtrue/wechat.
This extension helps you access overtrue/wechat
application in a simple & familiar way: Yii::$app->wechat
.
Installation
composer require maxwen/yii2-easy-wechat
Configuration
Add the SDK as a yii2 application component
in the config/main.php
:
'components' => [ // ... 'wechat' => [ 'class' => 'maxwen\easywechat\Wechat', // 'userOptions' => [] # user identity class params // 'sessionParam' => '' # wechat user info will be stored in session under this key // 'returnUrlParam' => '' # returnUrl param stored in session ], // ... ]
Usage
// here are two representative examples that will help you: // 微信网页授权: if(Yii::$app->wechat->isWechat && !Yii::$app->wechat->isAuthorized()) { return Yii::$app->wechat->authorizeRequired()->send(); } // 微信支付(JsApi): $orderData = [ 'openid' => '.. ' // ... etc. ]; $order = new WechatOrder($orderData); $payment = Yii::$app->wechat->payment; $prepayRequest = $payment->prepare($order); if($prepayRequest->return_code = 'SUCCESS' && $prepayRequest->result_code == 'SUCCESS') { $prepayId = $prepayRequest->prepay_id; }else{ throw new yii\base\ErrorException('微信支付异常, 请稍后再试'); } $jsApiConfig = $payment->configForPayment($prepayId); return $this->render('wxpay', [ 'jsApiConfig' => $jsApiConfig, 'orderData' => $orderData ]);
How to load Wechat configures?
the overtrue/wechat
application always constructs with a $options
parameter.
I made the options as a yii2 param in the params.php
:
recomended way:
// in this way you need to create a wechat.php in the same directory of params.php // put contents in the wechat.php like: // return [ // // wechat options here // ]; 'WECHAT' => require(__DIR__.'/wechat.php'),
OR
'WECHAT' => [ // wechat options here ]
Wechat options configure help docs.
More documentation
see EasyWeChat Docs.
Thanks to overtrue/wechat
, realy a easy way to play with wechat SDK 😁.