unetway/robokassa

用于与Robokassa服务交互的包

0.1.5 2024-03-07 16:50 UTC

This package is auto-updated.

Last update: 2024-09-29 13:00:30 UTC


README

该包允许通过Robokassa服务进行支付

安装

$ composer require unetway/robokassa

使用

<?php

use Unetway\Robokassa\Robokassa;

$robokassa = new Robokassa([
'login' => '',
'password1' => '',
'password2' => '',
'test_password1' => '',
'test_password2' => '',
'is_test' => false,
'hashType' => 'md5'
]);

参数

  • login - 登录名
  • password1 - 密码1
  • password1 - 密码2
  • test_password1 - 测试密码1
  • test_password2 - 测试密码2
  • is_test - true|false
  • hashType - md5|ripemd160|sha1|sha256|sha384|sha512

生成支付链接


$link = $robokassa->generateLink([
'OutSum' => 123.45,
'Description' => 'Описание',
'InvoiceID' => 7,
]);

echo $link;

$link = $robokassa->generateLink([
'OutSum' => 123.45,
'Description' => 'Описание',
'IncCurrLabel' => '',
'InvoiceID' => 7,
'Culture' => 'ru',
'Encoding' => 'UTF-8',
'Email' => '',
'ExpirationDate' => 'YYYY-MM-DDThh:mm:ss.fffffffZZZZZ',
'OutSumCurrency' => 'USD',
'UserIp' => '',
]);

echo $link;

该包可以使用必需非必需参数。

参数 MerchantLogin 和 SignatureValue 不需要指定。

发送短信

$phone = 'номер телефона';
$message = 'Сообщение не больше 128 символов';

return $robokassa->sendSms($phone, $message);

定期支付(周期性支付)

周期性支付所使用的参数列表请参见官方文档

$outSum = 7.5;
$invoiceID = 8; 
$previousInvoiceID = 5;
$paramsOther = []; //другие дополнительные параметры

return $robokassa->recurrent($outSum, $invoiceID, $previousInvoiceID, $paramsOther);

货币列表

用于指定 IncCurrLabel 参数的值,也用于在您的网站上显示可用的支付选项,以便您向客户提供更多信息。

$lang = 'ru';
return $robokassa->getCurrencies($lang);

支付方式列表

返回指定商店/网站可用的支付方式列表。

$lang = 'ru';
return $robokassa->getPaymentMethods($lang);

计算支付金额(考虑服务费)

允许计算购买者应支付的金额,包括 ROBOKASSA(根据费率)和购买者决定通过哪些系统进行支付的费用。

$outSum = 7.5;
$lang = 'ru';
$incCurrLabel = null;
return $robokassa->getRates($outSum, $language, $incCurrLabel);

计算商家所得金额

商家所得金额计算接口可根据 ROBOKASSA 的当前汇率,根据用户支付的金额计算所得金额。仅适用于个人。

return $robokassa->calcOutSumm($incSum, $incCurrLabel);

支付状态

获取支付状态信息 返回支付当前状态和详情。请注意,操作是在用户确认支付信息后而不是在用户离开支付页面时触发的,因此您可能会找不到已经应该开始操作的操作。

return $robokassa->opState($invoiceID);

在 ResultURL 上检查支付

$params['OutSum'] = $_POST['OutSum'];
$params['InvId'] = $_POST['InvId'];

if ($robokassa->checkResult($params)) {
    echo 'Успешно!';
};

在 SuccessURL 上检查支付

$params['OutSum'] = $_POST['OutSum'];
$params['InvId'] = $_POST['InvId'];

if ($robokassa->checkSuccess($params)) {
    echo 'Успешно!';
};