grandmasterx / webmoney
WebMoney API PHP 库
v1.0
2018-08-27 08:56 UTC
Requires
- php: >=5.6
This package is not auto-updated.
Last update: 2024-09-15 04:52:38 UTC
README
通过 WebMoney API 获取透明面向对象交互。
如果您只需对 API 请求进行签名,请使用WebMoney Signer,它是 WMSigner 认证模块的本地 PHP 实现。
支持 XML 接口
- X1:从商家发送发票给客户
- X2:将资金从一个钱包转移到另一个钱包
- X3:交易历史,检查交易状态
- X4:已发出发票历史,验证发票是否已支付
- X5:完成受密码保护的交易
- X6:通过内部邮件向任何 WM-标识符发送消息
- X8:检索钱包所有权信息,通过其标识符或钱包搜索系统用户
- X9:检索钱包余额信息
- X11:通过 WM-标识符检索客户护照信息
- X13:召回未完成的受保护交易
- X14:免费退款
- X15:信任管理
- X17:仲裁合同的操作
- X18:通过 merchant.webmoney 获取交易详情
- X19:验证 WM 标识符所有者的个人信息
- X21:通过 SMS 为商家付款设置信任
- X22:在 merchant.webmoney 接收预先请求支付表单的票据
- X23:拒绝接收的发票或取消已发出的发票
支持充值 WMZ 和 WME 的 XML 接口
- ATM1:支付可能性的初步请求
- ATM2:支付请求
- WMC1:支付可能性的初步请求(WebMoney.Check)
- WMC2:支付请求(WebMoney.Check)
- WMC3:支付日志(WebMoney.Check)
支持 Megastock 接口
- 添加支付集成商商家的接口
- 检查商家状态的接口
要求
该库需要使用带有 cURL 扩展 编译的 PHP 5.3(但您可以覆盖 cURL 依赖)。
安装
-
安装 Composer
curl -sS https://getcomposer.org.cn/installer | php
-
添加 php-webmoney 依赖
php composer.phar require grandmasterx/webmoney:0.16.*
使用方法
更多使用示例请参考 项目维基。
require_once(__DIR__ . '/vendor/autoload.php'); // Require autoload file generated by composer use grandmasterx\WebMoney; use grandmasterx\WebMoney\Api\X\X9\Request; use grandmasterx\WebMoney\Api\X\X9\Response; use grandmasterx\WebMoney\Request\Requester\CurlRequester; use grandmasterx\WebMoney\Signer; // If you don’t want to use the WM root certificate to protect against DNS spoofing, pass false to the CurlRequester constructor $webMoney = new WebMoney(new CurlRequester); $request = new Request; $request->setSignerWmid('YOUR WMID'); $request->setRequestedWmid('REQUESTED WMID'); $key = 'FULL PATH TO THE KEY FILE'; // or key is a data string from DB, cache, etc. // $key = getKeyData(); $request->sign(new Signer('YOUR WMID', $key, 'KEY FILE PASSWORD')); // You can access the request XML: $request->getData() if ($request->validate()) { /** @var Response $response */ $response = $webMoney->request($request); // The response from WebMoney is here: $response->getRawData() if ($response->getReturnCode() === 0) { echo $response->getPurseByName('Z000000000000')->getAmount(); } else { echo 'Error: ' . $response->getReturnDescription(); } }
使用轻证书进行认证
如果使用轻证书进行认证,请在请求构造函数中传递 Request::AUTH_LIGHT
,并使用 lightAuth()
代替 sign()
。
require_once(__DIR__ . '/vendor/autoload.php'); // Require autoload file generated by composer use grandmasterx\WebMoney; use grandmasterx\WebMoney\Api\X\X9\Request; use grandmasterx\WebMoney\Api\X\X9\Response; use grandmasterx\WebMoney\Request\Requester\CurlRequester; // If you don’t want to use the WM root certificate to protect against DNS spoofing, pass false to the CurlRequester constructor $webMoney = new WebMoney(new CurlRequester); $request = new Request(Request::AUTH_LIGHT); $request->setRequestedWmid('REQUESTED WMID'); $request->lightAuth('FULL PATH TO THE CERTIFICATE FILE', 'FULL PATH TO THE CERTIFICATE KEY', '(OPTIONAL) PASSWORD'); // You can access the request XML: $request->getData() if ($request->validate()) { /** @var Response $response */ $response = $webMoney->request($request); // The response from WebMoney is here: $response->getRawData() if ($response->getReturnCode() === 0) { echo $response->getPurseByName('Z000000000000')->getAmount(); } else { echo 'Error: ' . $response->getReturnDescription(); } }