mitrm / yii2-gourlio
gourl.io 支付扩展。
1.000
2018-04-01 17:55 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-26 05:22:22 UTC
README
比特币和代币支付接受
安装
安装此扩展的首选方法是通过 Composer。
可以运行
composer require --prefer-dist mitrm/yii2-gourlio "*"
或者添加
"mitrm/yii2-gourlio": "*"
到您的 composer.json
文件的 require 部分。
用法
在 config/main.php 中添加
'components' => [ 'gourlio' => [ 'class' => 'mitrm\gourlio\Cryptobox', 'period' => 'NOEXPIRY', 'all_key' => [ 'bitcoin' => ['public_key' => '', 'private_key' => ''], 'speedcoin' => ['public_key' => '', 'private_key' => ''], ... ] ], ]
支付数据生成
$options = array( 'order_id' => $order_id, 'user_id' => Yii::$app->user->id, 'amount' => $sum, 'coinName' => 'speedcoin', // bitcoin ... ); $data_pay = Yii::$app->gourlio->load($options)->getPaymentData(); $data_pay['addr']; // Номер кошелька для перевода средств $data_pay['amount']; // сумма к оплате
支付检查
$options = array( 'order_id' => $order_id, 'user_id' => Yii::$app->user->id, 'amount' => $sum, 'coinName' => 'speedcoin', // bitcoin ... ); if(Yii::$app->gourlio->load($options)->isPaid()) { // Оплата пришла }
从 gourl.io 获取支付通知
class PaymentsController extends Controller { public $enableCsrfValidation = false; /** * @inheritdoc */ public function actions() { return [ 'result' => [ 'class' => '\mitrm\gourlio\ResultAction', 'callback' => [$this, 'resultCallbackGourlio'], ] ]; } /** * Обработка оповещения о платеже с gourl.io * @param $cryptobox Cryptobox * @param $return_data * @return string */ public function resultCallbackGourlio($cryptobox, $return_data) { $model = PaymentRequest::findOne(['id' => $return_data['params']['order'], 'user_id' => $return_data['params']['user']]); if (!$model) { throw new BadRequestHttpException('Транзакция не найдена'); } $data = [ 'order_id' => $model->id, 'user_id' => Yii::$app->user->id, 'amount' => $model->sum, 'coinName' => $model->currency, // speedcoin, bitcoin, ... ]; $cryptobox->load($data); if($cryptobox->isPaid()) { $model->sum = $return_data['params']['amount']; $model->status_id = PaymentRequest::STATUS_SUCCESS; $model->save(); } return $return_data['text_return']; } }