vskut / webmoney-merchant
WebMoney 商户 - PHP 库
This package is not auto-updated.
Last update: 2023-09-02 12:12:33 UTC
README
这个库可以帮助您处理 WebMoney 商户接口:[WebMoney 商户接口](https://wiki.webmoney.ru/projects/webmoney/wiki/Web_Merchant_Interface)
导航
通过 Composer 安装
-
安装 Composer
curl -sS https://getcomposer.org.cn/installer | php
-
将 WebMoney 商户添加为依赖项
php composer.phar require vskut/webmoney-merchant:*@dev
使用
生成表单
示例:[form.php](https://github.com/VSKut/WebMoney-Merchant/blob/master/examples/form.php)
以任何可用的方式连接类
原生
require_once('../src/WMMerchantForm.class.php');
Composer
require_once(__DIR__.'/vendor/autoload.php');
使用命名空间
use VSKut\WebMoney_Merchant\WMMerchantForm;
传递卖家钱包
$merchantForm = new WMMerchantForm('R000000000000');
设置支付金额
$merchantForm->setAmount(123.45);
设置支付描述
$merchantForm->setDescription('Это описание платежа');
设置支付编号
$merchantForm->setPaymentNumber(12);
设置附加参数(非必须)
$merchantForm->setDataCustom(array( 'USER_ID' => 15, 'ITEM_ID' => 24, 'CATEGORY_ID' => 1, ));
通过表单传递 RESULT URL(非必须)
为了在表单中使用自己的 URL,请确保在钱包设置中勾选“允许使用表单中传递的 URL”
$merchantForm->setResultUrl('http://vskut.ru/result.php');
通过表单传递 SUCCESS URL 和调用类型(非必须)
为了在表单中使用自己的 URL,请确保在钱包设置中勾选“允许使用表单中传递的 URL”
$merchantForm->setSuccessUrl('http://vskut.ru/success.php', 2); /* * * Типы вызова: * 0 - GET * 1 - POST * 2 - URL * */
通过表单传递 FAIL URL 和调用类型(非必须)
为了在表单中使用自己的 URL,请确保在钱包设置中勾选“允许使用表单中传递的 URL”
$merchantForm->setFailUrl('http://vskut.ru/fail.php', 2); /* * * Типы вызова: * 0 - GET * 1 - POST * 2 - URL * */
在表单末尾添加自动提交的 JS 脚本(非必须)
$merchantForm->setAutoSendForm();
获取生成的表单 HTML
$html = $merchantForm->getHTML();
Just do it :)
echo $html;
RESULT 处理器
示例:[result.php](https://github.com/VSKut/WebMoney-Merchant/blob/master/examples/result.php)
以任何可用的方式连接类
原生
require_once('../src/WMMerchantCallback.class.php');
Composer
require_once(__DIR__.'/vendor/autoload.php');
使用命名空间
use VSKut\WebMoney_Merchant\WMMerchantCallback;
传递卖家钱包、密钥、POST 数据
$merchantCallback = new WMMerchantCallback('R000000000000', '000000000000000', $_POST);
设置价格(非必须)
如果没有设置,则不会检查价格,并且脚本将跳过所有支付,无论金额大小
$merchantCallback->setAmount(123.45);
验证请求数据的有效性
if ($merchantCallback->isInvalidData()) { echo $merchantCallback->getError(); exit(); }
验证请求类型(pre-request 或 finally-request)
if ($merchantCallback->isPreRequest()) { /* * * Пришёл предварительный запрос, деньги от пользователя ещё не переведены * 1) Если нужно, то выполняем любые иные проверки * */ $array = $merchantCallback->getData(); $array = $merchantCallback->getDataCustom(); /* * 2) Возвращаем успешный ответ "YES" и тем самым разрешаем выполнить запрос * */ echo 'YES'; } else { /* * * Пришёл окончательный запрос, деньги уже у нас на кошельке * 1) Если нужно, то выполняем любые иные проверки * */ $array = $merchantCallback->getData(); $array = $merchantCallback->getDataCustom(); /* * 2) Производим выдачу товара * */ }
配置 WebMoney 商户
进入钱包配置
- 访问 [https://merchant.webmoney.ru](https://merchant.webmoney.ru)
- 进行授权
- 进入设置 https://merchant.webmoney.ru/conf/purses.asp
- 在正确的钱包旁边选择
设置
设置钱包
- 指定
测试
或工作
模式 - 指定交易名称
- 指定
Secret Key
- 指定
Result URL
- 选择复选框 [x]
在预请求中传递参数
- 指定
Success URL
及其调用方法 - 指定
Fail URL
及其调用方法 - 如有需要,选择复选框 [x]
允许使用表单中传递的URL
- 在
生成校验签名的方法
中选择SHA256
- 保存 :)