Есть ли примеры использования кредитов Facebook в Google App Engine?
Я нашел это сообщение в блоге, но оно не завершено http://blog.suinova.com/2011/01/integrating-facebook-credits-api-into.html
Я получил пример runwithfriends пример работает над App Engine, пытался расширить его кредитами, пока что безуспешно.
Также искал форумы разработчиков FB, ничего не получил.
Любые ресурсы, которые вы можете мне указатьto?
Что не работает:
1) Когда я нажимаю кнопку «Оплатить с помощью Facebook», я получаю «Ошибка приложения» без кода ошибки.
-Проверена консоль javascript
-Проверил настройки приложения fb
-Пробовал на локальном сервере и производственном сервере
2) Callback.py не завершен, потому что я не смог разобрать подписанный запрос (код недоступен вpy для меня, чтобы учиться)
3) Что я в основном сделал, это добавил код из Suinova Designs (ссылка выше) в существующий код приложения Run With Friends.Не получилось, как ожидалось.
мой код пока:
//payment_page.html
<html>
<table>
<tr><th>Name</th><th>Price</th><th> </th></tr>
<tr><td>Something to buy</td><td>10 FC</td><td><a href="" onclick="return buyit();">
<img src="http://www.facebook.com/connect/button.php?app_id=215638625132268&feature=payments&type=light_l" />
</a></td></tr>
</table>
// javascript
function buyit(){
FB.ui({
method:'pay',
purchase_type:'item',
order_info:{
item_id:'myitem',
title:'Something to buy',
price:2,
description:'Whatever',
image_url:'http://www.facebook.com/images/gifts/21.png',
product_url:'http://www.facebook.com/images/gifts/21.png'}
},
function(resp){
if(resp.order_id) window.top.location='http://apps.facebook.com/runwithfriends trial'; else alert(resp.error_message);
});
return false;
}
//callback.py
class FacebookPaymentRequest(webapp.RequestHandler):
def post(self):
signed_request = parse_signed_request(self.request.get('signed_request'),conf.FACEBOOK_APP_SECRET)
payload = signed_request['credits'] #credits:{buyer:int,order_id:int,order_info:{},receiver:int}
order_id = payload['order_id']
method = web.request.get('method')
return_data = {'method':method}
if method == 'payments_get_items':
order_info = payload['order_info'] #order_info:{item_id:'',title:'',description:'',price:0,image_url:'',product_url:''}
item = simplejson.loads(order_info) #needs to convert JSON string to dict
#check item,price,etc and reply
return_data['content'] = [item]
elif method == 'payments_status_update':
status = payload['status']
return_data['content'] = {'status':'settled','order_id':order_id}
if status == 'placed':
#just return settled status to Facebook, this may be called twice
order_details = simplejson.loads(payload['order_details'])
#check and log here
elif status == 'settled':
order_details = simplejson.loads(payload['order_details'])
#order_details:{order_id:0,buyer:0,app:0,receiver:0,amount:0,update_time:0,time_placed:0,data:'',items:[{}],status:'placed'}
buyer = order_details['buyer']
item = order_details['items'][0]
#now save this transaction into our database
else:
#may be refunded, canceled, log the activity here
return_data['content']['status'] = status
self.response.out.write(simplejson.dumps(return_data))