paypalとPHP5で決済システムを作っていてハマっています。

PDTとIPN処理はサンプルコードでは無事動作を確認しましたが、IPN処理でDBを更新させようと自サイトにログイン中のメンバーIDを取得したいのですがなかなか取得してくれません。
バックエンドでの処理は初めてなのでかなり手間取っています。


1.$arr_data = $auth->getAuthData();
2.$id = $arr_data['id'];
3.$id = $_SESSION['member_data']['id'];
4.$id = "999";
5.$id = 999;


$idにメンバーIDを取得したいのですが、4.と5.は当然ですがDB更新が行われます。
しかし、1.2.の組み合わせや、3.では取得できません。
1.2.3.は他のルーチンでの取得を確認したり、また、ブラウザにprint()で$idを出力してみるのですが値はいづれも正常です。
バックエンドでは、$_SESSIONやpearのauthは無効になるのでしょうか?
疲れました。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/02/22 01:17:40
  • 終了:2011/02/23 15:06:54

回答(2件)

id:pretaroe No.1

pretaroe回答回数531ベストアンサー獲得回数752011/02/22 09:51:49

ポイント35pt

バックエンドの具体的なことがわかりませんが

質問の例だと、セッションが別になっているため取得できないと思われます。

バックエンドを起動するときの引数などに、読みたい値を引き渡すなどするとよいでしょう。

>ブラウザにprint()で$idを出力してみるのですが値はいづれも

バックエンドでセッションを取得するときと、ブラウザで取得するときとは条件が違うのでは?

バックエンドの処理において、$_SESSION['member_data']['id']の値をファイルに出力するなりして

本当に値が取れているのか確認してください。

id:seadwell

> バックエンドの具体的なことがわかりませんが

ですよね。

これっぽっちの質問では。

いろいろ推察いただきありがとうございます。

> バックエンドを起動するときの引数などに、読みたい値を引き渡す

$_SESSIONなどにこだわらず、他の方法も試してみます。

ありがとうございました。

2011/02/22 14:00:21
id:asuka645 No.2

あすか回答回数856ベストアンサー獲得回数972011/02/22 10:27:54

ポイント35pt

「バックエンド」の位置づけがどうなっているのかわかりませんが、クライアントから取得した$authや$_SESSIONを「バックエンド」に引き継いでいますか?

ご確認ください。

id:seadwell

IPN処理かつ、バッチでは処理を一行ずつ検証できない(する方法を知らない)ので苦戦しています。

$authはメインルーチンで取得した後、引数で使いまわしています。

$_SESSIONは一度セットすれば破棄しない限りどこでも取得できると思っていました。

$authや$_SESSIONにこだわらず、視野を広げてみます。

ありがとうございました。

2011/02/22 14:31:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません