bookin/yii2-wallet-one

钱包One服务的组件

安装: 380

依赖项: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 7

开放问题: 2

类型:yii2-extension

1.0.0 2016-08-15 19:57 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:19:56 UTC


README

Total Downloads Latest Unstable Version License

安装

安装此扩展的首选方式是通过 composer

要安装,请运行

$ php composer.phar require bookin/yii2-wallet-one "@dev"

或添加

"bookin/yii2-wallet-one": "@dev"

到您的 composer.json 文件的 require 部分。

用法

配置组件

'walletone'=>[
    'class'=>'bookin\walletone\WalletOne',
    'secretKey'=>'....',
    'signatureMethod'=>'sha1',
    'buttonLabel'=>'....',
    'walletOptions'=>[
        'WMI_MERCHANT_ID'=>'...',
        'WMI_CURRENCY_ID'=>'...',
        'WMI_SUCCESS_URL'=>['site/payment-success'],
        'WMI_FAIL_URL'=>['site/payment-fail'],
    ]
]

secretKey - 这是您的密钥,您可以在账户设置集成页面找到它

walletOptions - 这是生成支付表单的 参数,您可以设置永久数据

signatureMethod - EDS 创建方法,此参数必须与您在账户设置集成页面选择的相同(默认 - sha1)

buttonLabel - WalletOneButton 的标签

如果您不使用加密方法,则需要将 signatureMethodsecretKey 设置为 NULL

示例显示表单

您可以获取字段(添加一些选项),并创建表单

$action = Yii::$app->walletone->apiUrl;
$formData = Yii::$app->walletone->getFields([
    'WMI_PAYMENT_AMOUNT'=>'1.00',
    'WMI_CURRENCY_ID'=>WalletOne::CurrencyID('UAH'),
    'WMI_DESCRIPTION'=>'Top up the account - '.Yii::$app->user->identity->username,
    'WMI_PAYMENT_NO'=>Yii::$app->user->id
]);
echo Html::beginForm($action);
foreach($formData as $key => $value){
    echo Html::hiddenInput($key, $value);
}
echo Html::submitButton('Pay', ['class'=>'btn btn-info']);
echo Html::endForm();

或使用简单的表单(按钮)

echo WalletOneButton::widget([
    'walletOptions'=>[
        'WMI_PAYMENT_AMOUNT'=>'1.00',
        'WMI_CURRENCY_ID'=>WalletOne::CurrencyID('UAH'),
        'WMI_DESCRIPTION'=>'Top up the account - '.Yii::$app->user->identity->username,
        'WMI_PAYMENT_NO'=>Yii::$app->user->id
    ]
]);

示例成功操作

$post = Yii::$app->request->post();

/** @var WalletOne $walletone */
$walletone = Yii::$app->walletone;

try{
    if($walletone->checkPayment($post)){
        //... save info about payment
    }
}catch (ErrorException $c){
    return 'WMI_RESULT=RETRY&WMI_DESCRIPTION='.$c->getMessage();
}
return 'WMI_RESULT=OK';

问题

如果您已为您的应用程序启用了 enableCsrfValidation,则在初始化表单之前应手动禁用它(Yii::app()->request->enableCsrfValidation = false;),以确保有正确的令牌。