Advertisement

04.24.2008 at 09:57PM PDT, ID: 23352688
[x]
Attachment Details

google checkout : howto make a paypal like IPN

Asked by alicca in Web Languages/Standards, Scripting Languages, Open Source Programming

Tags: php

how to create a IPN by modifying my paypal IPN for google check out.

the IPN will do something with database ( when payment are success )

how to check with google wheter the payment are success?



i have take a look on google
http://code.google.com/apis/checkout/samples/Google_Checkout_Sample_Code_PHP.html

but i cant understand.


can some 1 modify the code?
Thanks

Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
==================== paypal IPN =====================================
<?
 
 
 
include("/home/dedicate/public_html/mafia/funcs.php");
 
 
 
// read the post from PayPal system and add 'cmd'
 
 
 
$req = 'cmd=_notify-validate';
 
 
 
 
 
 
 
foreach ($_POST as $key => $value) {
 
 
 
  $value = urlencode(stripslashes($value));
 
 
 
  $req .= "&$key=$value";
 
 
 
}
 
 
 
 
 
 
 
// post back to PayPal system to validate
 
 
 
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
 
 
 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
 
 
 
$header .= 'Content-Length: ' . strlen($req) . "\r\n\r\n";
 
 
 
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
 
 
 
 
 
 
 
// assign posted variables to local variables
 
 
 
// note: additional IPN variables also available -- see IPN documentation
 
 
 
$item_name = $_POST['item_name'];
 
 
 
$receiver_email = $_POST['receiver_email'];
 
 
 
$item_number = $_POST['item_number'];
 
 
 
$invoice = $_POST['invoice'];
 
 
 
$payment_status = $_POST['payment_status'];
 
 
 
$payment_gross = $_POST['payment_gross'];
 
 
 
$txn_id = $_POST['txn_id'];
 
 
 
$payer_email = $_POST['payer_email'];
 
 
 
 
 
 
 
if (!$fp) {
 
 
 
	$req .="&ERROR";
 
 
 
  // ERROR
 
 
 
  echo "$errstr ($errno)";
 
 
 
} else {
 
 
 
  fputs ($fp, $header . $req);
 
 
 
  while (!feof($fp)) {
 
 
 
    $res = fgets ($fp, 1024);
 
 
 
    if (strcmp ($res, "VERIFIED") == 0) {
 
 
 
				$req .="&FAILED";
 
 
 
        echo "<pre>";
 
 
 
        print_r($_POST);
 
 
 
        if($_POST[payment_status]=="Completed") {
 
 
 
 
 
 
 
if ((!fetch("SELECT tranid FROM $tab[paypal] WHERE tranid='$txn_id';")) && ($business == "webmaster@tmg-corporation.com"))
 
 
 
   {
 
 
 
 
 
 
 
 
 
 
 
    if($payment_gross == "5.00"){$turns="1000";}
 
 
 
elseif($payment_gross == "10.00"){$turns="3000";}
 
 
 
elseif($payment_gross == "25.00"){$turns="8000";}
 
 
 
elseif($payment_gross == "50.00"){$turns="20000";}
 
 
 
elseif($payment_gross == "100.00"){$turns="45000";}
 
 
 
elseif($payment_gross == "200.00"){$turns="95000";}
 
 
 
elseif($payment_gross == "400.00"){$turns="200000";}
 
 
 
elseif($payment_gross == "600.00"){$turns="350000";}
 
 
 
elseif($payment_gross == "1000.00"){$turns="700000";}
 
 
 
else{$turns="0";}
 
 
 
 
 
 
 
        $expires=$time+2592000;//120 days
 
 
 
        $total=$payment_gross-$payment_fee;
 
 
 
//update database to add turns to user in game they bought for
 
 
 
        mysql_query("UPDATE $tab[user] SET status='supporter', statusexpire='$expires', credits=credits+$turns WHERE username='$custom'");
 
 
 
//insert into database paypal information
 
 
 
        mysql_query("INSERT INTO $tab[paypal] (tranid,amount,fee,user,datebought) VALUES ('$txn_id','$payment_gross','$payment_fee','$custom','$time');");
 
 
 
//send email to admin about transaction from paypal--ADMIN-check database to make sure transaction went through to game
 
 
 
        mail_2("$turns credits were bought!","\nDear  mafia.dedicatedgamingnetwork.com,\n\nYou just received a payment from $custom for $turns credits\n\nCost: $$payment_gross\nFee: $$payment_fee\n----------\nTotal: $$total","webmaster@tmg-corporation.com");
 
 
 
 
 
 
 
   }else{echo"Cannot refresh transaction!";}
 
 
 
 
 
 
 
        }
 
 
 
      // check the payment_status is Completed
 
 
 
      // check that txn_id has not been previously processed
 
 
 
      // check that receiver_email is an email address in your PayPal account
 
 
 
      // process payment
 
 
 
      }
 
 
 
      else if (strcmp ($res, "INVALID") == 0) {
 
 
 
      	$req .="&FAILURE";
 
 
 
				// log for manual investigation
 
 
 
      }
 
 
 
  }
 
 
 
  fclose ($fp);
 
 
 
}
 
 
 
 
 
 
 
//mail_2("IPN TEST FOR MAFIACOMBAT.COM", "Here are the values submitted:\n$req", "info@ltrmedia.com")
 
 
 
 
 
 
 
?>
[+][-]04.24.2008 at 10:19PM PDT, ID: 21437193

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]04.24.2008 at 11:44PM PDT, ID: 21437422

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Web Languages/Standards, Scripting Languages, Open Source Programming
Tags: php
Sign Up Now!
Solution Provided By: mplungjan
Participating Experts: 1
Solution Grade: A
 
 
[+][-]04.25.2008 at 01:51AM PDT, ID: 21437839

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]04.25.2008 at 01:52AM PDT, ID: 21437841

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628