hello, i understand - this is only API, but how we can use it ? any examples and docs, please

Comments

gor’s picture

I don't have documentation yet.
Any help with it is acceptable.

You can check this module http://drupal.org/project/pg_simplepay.

And you can ask questions here) I will do my best to help you.

Gor

ionmedia’s picture

Хорошо, Игорь. полагаю русский приемлем ;)

мне необходимо вводить и выводить средства в систему (друпал сайт) из платёжных систем и на кошельки пользователей с внутреннего счёта (используется usepoints термин таксономии, как внутренняя валюта сайта).

итак, я себе представляю это следующим образом: ввод средств предоставляется по созданию пользователем ноды типа счёт (с заранее забитыми в ноду полями тип платежа и размер и т.д.) при нажатии кнопки оплатить (сохранить ноду) вбитые в ноду опции (тип платёжной системы и размер платежа) передаются в pgapi в виде запроса (php сниппетом), а уже pgapi выполняет перевод по вбитым в него параметрам.
по завершению платежа в ноде должно менятся select поле condition, следовательно ключом платежа должен быть уникальный идентификатор платежа (nid счёта)

собственно сам вопрос здесь, это вызов pgapi: как вызвать, передать параметры ?

аналогично пользователем (либо через rules) создаётся нода типа вывод средств, которая переводит средства с внутреннего счёта на кошелёк, указанный пользователем в профиле, но так как на вывод сейчас работает отдельный модуль, хотелось разобраться тут хотя бы с вводом.

для примера приведу документацию похожего модуля, хотелось бы в результате получить что то подобное :)

----
API:
----
Modules has internal API which can be used to process actions like creating, 
enrolling and deleting payments.

  ---------------
  Create payment:
  ---------------

  $result=webmoney_merchant_api('insert', $params);

  Passed parameters:

  $params=array(
     'uid' => $user->uid,		 // owner of the payment, usually user who created it
     'created' => time(),		 // optional, time of payment creation
     'amount' => 12.95,			 // amount of payment
     'currency' => 'USD',		 // currency id
     'memo' => 'Payment to website',
     'payee_account' => 'Z111111111111', // optional
  );

  Returned array:

  $result['pid']  // payment_id
  $result['uid']
  $result['created']
  $result['amount']
  $result['currency']
  $result['memo']
  $result['payee_account']


  -------------
  Load payment:
  -------------

  $result=webmoney_merchant_api('insert', $pid);

  Passed parameters: $pid - payment ID.

  Returned array:

  $result['pid']  // payment_id
  $result['uid']
  $result['created']
  $result['enrolled'] // time of enrollment (0 if not enrolled yet)
  $result['amount']
  $result['currency']
  $result['memo']
  $result['payee_account']
  $result['payer_account'] //  empty if not enrolled yet
  $result['custom_field_you_passed_via_api'] // additional fields are also 
						returned

  ---------------
  Enroll payment:
  ---------------
  
  $result=webmoney_merchant_api('enroll', $params);

  Passed parameters:

  $params=array(
     'pid' => $payment_id,		 // required
     'payer_account' => 'Z222222222222', // optional
     'time' => time(),			 // optional
  );

  Returned value: true - on success, false - on error.


  ---------------
  Delete payment:
  ---------------
  
  $result=webmoney_merchant_api('delete', $pid);

  Passed parameters: $pid - payment ID.

  Returned value: true - on success, false - on error.


------
Hooks:
------
Module implements own hooks, which fire on the following actions:

function hook_webmoney_merchant($op, $payment, $params=''){
   
   switch($op){
   case 'insert': 
      
      // fires BEFORE payment creation
      // $payment here is an array with payment info

      // hook MUST return passed $payment array with possible changes
      return array(
		'uid' => $payment['uid'],
		'created' => $payment['created'],
		'amount' => $payment['amount'],
		'currency' => $payment['currency'],
		'memo' => $payment['memo'].' add some text, for instance',
		'payee_account' => $payment['payee_account'],
      );

   break;
   case 'inserted': 
      
      // fires immediately AFTER payment created
      // $payment here is payment ID
      // $params here could be (or not be) an array with payment info
	   
   break;
   case 'enrolled': 
      
      // fires immediately after payment enrolled
      // $payment here is an array with payment info
	   
   break;
   case 'deleted': 
      
      // fires immediately after payment deleted
      // $payment here is payment ID
	   
   break;
   }

}
---------------------
Things to do in code:
---------------------

- webmoney_merchant.module: defined variables at the beginning
- webmoney_merchant.pages.inc: see variable $LMI_MODE and $debug_errors
gor’s picture

Здравствуйте.

Попробуйте поставить последний pgapi, и pg_account.
Последний полностью выполняет все то, что вы описали. Единственное НО - это не связано с userpoints.

Тоесть там есть возможность пополнить баланс, вывести деньги с баланса. Оператору сайта в ручную пополнить баланс любому пользователю, или снять с него деньги. У пользователя есть история пополнений и снятий, с коментариями.

А пример как использовать оплату ноды, всетаки посмотрите в pg_simplepay там именно все то, что вы описали - оплата за ноду, и изменение доступа к ноде,е сли оплата есть. Этого вполне должно вам хватить как стартового толчка к решению вашей задачи.
Я надеюсь читать код для вас не проблема?

Если проблема, то вам прийдется найти програмиста который это будет писать и который умеет читать код, так как документации нет, и мне нужна помошь по ее написанию.

Удачи.

С Уважением, Егор

ionmedia’s picture

Вник, на стадии настройки и тестирования всё работает хорошо, только вот сейчас проблема:

при удалении кошельков вылетает

Array ( [WMR] => WMR [WMZ] => WMZ )

посмотри пожалуйста, два раза пробовал, одно и то же

scutcenhylean’s picture

Эта публикация первая попалась мне в ру_нете по этой, нужной мне теме. И скажу - удовлетворен что набрел именно на нее. Хотя нужно бы развить этот вопрос. Для посетителей этого сайта скажу - актуально, рекомендую!!!!