0

このような初心者のリクエストについてはお詫びしますが、ガイダンスは大歓迎です。Payza (以前の AlertPay) IPN ハンドラーを、以前 PayPal で使用されていたクラス/関数構造に統合する必要があります。

私の PayPal IPN ハンドラは次のように構成されています。

class PayPalIPN {

public $paypal_url;
public $socket_url;
public $ipn_response;
public $ipn_data;



function __construct() {
    $this->paypal_url       = 'https://www.paypal.com/cgi-bin/webscr';
    $this->socket_url       = 'www.paypal.com';
    $this->ipn_response     = '';
}



function validate_ipn($logId = null) {

Do stuff
}

Payza (以前の AlertPay) IPN ハンドラーのサンプル コードは次のようになります。

define("IPN_V2_HANDLER", "https://secure.payza.com/ipn2.ashx");
define("TOKEN_IDENTIFIER", "token=");

// get the token from Payza
$token = urlencode($_POST['token']);

//preappend the identifier string "token=" 
$token = TOKEN_IDENTIFIER.$token;

/**
 * 
 * Sends the URL encoded TOKEN string to the Payza's IPN handler
 * using cURL and retrieves the response.
 * 
 * variable $response holds the response string from the Payza's IPN V2.
 */

$response = '';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, IPN_V2_HANDLER);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

curl_close($ch);

私はこれから始めました:

class PayzaIPN {

public $IPN_V2_HANDLER;
public $TOKEN_IDENTIFIER;
public $response;
public $ipn_data;
public $token;  


//define("TOKEN_IDENTIFIER", "token=");

//define("IPN_V2_HANDLER", "https://secure.payza.com/ipn2.ashx");
//define("IPN_V2_HANDLER", "https://sandbox.Payza.com/sandbox/IPN2.ashx");

function validate_ipn($logId = null)  { 
$this->IPN_V2_HANDLER = 'https://sandbox.Payza.com/sandbox/IPN2.ashx';
$this->token = TOKEN_IDENTIFIER.$token;

正しい構造で適切に宣言された変数を取得するのに問題があります - T_function の予期されるエラーと未定義の定数エラーが発生します。

4

2 に答える 2

0

開発センターhttps://dev.payza.com/の情報をご覧ください。

IPNに関連するものを整理するのに役立つ豊富な情報がそこにあります。

これがあなたが探していると私が信じるコードへの直接リンクです:

https://dev.payza.com/sdks-and-sample-codes/php/ipn/sample-ipn-v2-handler-item.txt

ではごきげんよう!

于 2012-09-14T20:19:38.777 に答える
0

コメントにコードを投稿できませんでした-これまでに実装したコードは次のとおりです。

class PayzaIPN {  
function validate_ipn($payzaIPN ='',$logId = null)  {

define("IPN_V2_HANDLER", "https://secure.payza.com/ipn2.ashx");
define("TOKEN_IDENTIFIER", "token=");
$_POST['token'] = ''; 

$token = urlencode($_POST['token']);

$token = TOKEN_IDENTIFIER.$payzaIPN;



$response = '';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, IPN_V2_HANDLER);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

curl_close($ch);

if(strlen($response) > 0)

ブラウザから直接コードを実行してトークン処理をテストすると、ログに表示され、適切な応答が得られます。token = 47TXhMVgdPrmV3n5aauIZ5CC0MrytYXWjID81pjVnQsEhkSUklPXT3clXZ4SFUFOL5WqepRUpBz5SKomoyPuDw =

しかし、トランザクションを生成するか、PayzaからIPNを再送信すると、ログに表示されず、500内部サーバーエラーが発生します。トニー、Payzaと一緒にいるようですね-ここでお会いできて光栄です:)

于 2012-09-15T12:20:07.530 に答える