baibaratsky / php-webmoney
WebMoney API PHP Library
Installs: 317 856
Dependents: 1
Suggesters: 0
Security: 0
Stars: 73
Watchers: 11
Forks: 32
Open Issues: 0
Requires
- php: >=5.3
- baibaratsky/php-wmsigner: 2.0.*
README
Get transparent object-oriented interaction with WebMoney API.
If you just need to sign your requests to the API, use WebMoney Signer, a native PHP implementation of the WMSigner authentication module.
XML-interfaces supported
- X1: sending invoice from merchant to customer
- X2: transferring funds from one purse to another
- X3: transactions history, checking transactions status
- X4: issued invoices history, verifying whether the invoices were paid
- X5: completing a code-protected transaction
- X6: sending message to any WM-identifier via internal mail
- X8: retrieving information about purse ownership, searching for system user by his/her identifier or purse
- X9: retrieving information about purse balance
- X11: retrieving information from client’s passport by WM-identifier
- X13: recalling incomplete protected transaction
- X14: fee-free refund
- X15: trust management
- X17: operations with arbitration contracts
- X18: getting transaction details via merchant.webmoney
- X19: verifying personal information for the owner of a WM identifier
- X21: setting trust for merchant payments by SMS
- X22: receiving the ticket of prerequest payment form at merchant.webmoney
- X23: rejection of received invoices or cancellation of issued invoices
XML-interfaces to top-up WMZ and WME
- ATM1: preliminary request on the payment possibility
- ATM2: payment request
- WMC1: preliminary request on the payment possibility (WebMoney.Check)
- WMC2: payment request (WebMoney.Check)
- WMC3: payments log (WebMoney.Check)
Megastock interfaces supported
- Interface for adding Payment Integrator's merchants
- Interface for check status of merchant
Requirements
The library requires PHP 5.3 compiled with cURL extension (but you can override cURL dependencies).
Installation
-
Install Composer:
curl -sS https://getcomposer.org/installer | php
-
Add the php-webmoney dependency:
php composer.phar require baibaratsky/php-webmoney:0.18.*
Usage
There are more usage examples in the project wiki.
require_once(__DIR__ . '/vendor/autoload.php'); // Require autoload file generated by composer use baibaratsky\WebMoney; use baibaratsky\WebMoney\Api\X\X9\Request; use baibaratsky\WebMoney\Api\X\X9\Response; use baibaratsky\WebMoney\Request\Requester\CurlRequester; use baibaratsky\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\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(); } }
Authentication with a Light certificate
In case of authentication with a Light certificate, pass Request::AUTH_LIGHT
to the request constructor
and use lightAuth()
instead of sign()
.
require_once(__DIR__ . '/vendor/autoload.php'); // Require autoload file generated by composer use baibaratsky\WebMoney; use baibaratsky\WebMoney\Api\X\X9\Request; use baibaratsky\WebMoney\Api\X\X9\Response; use baibaratsky\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\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(); } }