iap支付服务器验证python版本

苹果最近修改了规则,正式上线之前申请时请使用沙箱地址

客户端支付成功,发送信息到服务器,进行二次验证。

#-*- coding: utf-8 -*-
from django.http import HttpResponse, HttpResponseRedirect
import simplejson as json
import httplib
def pay_check(request):

uid = request.uid
params = request.POST.get('params','')

if not params:
return HttpResponse('false')


pay_receipt_dict = json.loads(params)
pay_receipt_data = pay_receipt_dict.get('receipt-data')
pay_receipt = json.dumps({'receipt-data':pay_receipt_data})

headers = {"Content-type": "application/json"}
#测试地址
#connect = httplib.HTTPSConnection("sandbox.itunes.apple.com")
#正式地址
connect = httplib.HTTPSConnection("buy.itunes.apple.com")

try:
connect.request("POST", "/verifyReceipt", pay_receipt, headers)
result = connect.getresponse()
except:
return HttpResponse('false')

if result.status != 200:
return HttpResponse('false')

data = result.read()
connect.close()
if data:
decodedJson = json.loads(data)

status = decodedJson.get('status')
receipt = decodedJson.get('receipt', {})

transaction_id = receipt.get('transaction_id', '')
purchase_date = receipt.get('original_purchase_date', '')
product_id = receipt.get('product_id', '')

if status == 0:
#返回的status为0时代表支付是成功的,支付成功,最好记录一下
return HttpResponse('true')

return HttpResponse('false')



验证返回结果格式,注意其中的时间是格林尼治时间。和中国时间相差8小时。

{'receipt': {'bid': 'com.****.shop',
'bvrs': '1.0.1',
'item_id': '514487074',
'original_purchase_date': '2012-05-03 03:46:52 Etc/GMT',
'original_purchase_date_ms': '1336016812072',
'original_purchase_date_pst': '2012-05-02 20:46:52 America/Los_Angeles',
'original_transaction_id': '1000000046751500',
'product_id': 'store_1',
'purchase_date': '2012-05-03 03:46:52 Etc/GMT',
'purchase_date_ms': '1336016812072',
'purchase_date_pst': '2012-05-02 20:46:52 America/Los_Angeles',
'quantity': '1',
'transaction_id': '1000000046751500'},
'status': 0}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值