`
ghh0000
  • 浏览: 24170 次
  • 来自: ...
社区版块
存档分类
最新评论

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}

分享到:
评论

相关推荐

    Python库 | itunes-iap-2.5.0.tar.gz

    “itunes-iap”库是Python开发人员处理苹果IAP验证和服务的利器。它提供了简单易用的API,使得开发者可以轻松地集成到他们的应用中,进行产品验证、购买状态查询、收据验证等一系列操作。在版本2.5.0中,这个库可能...

    InAppPy:适用于Apple AppStore和GooglePlay的Python应用内购买验证器

    InAppPy是一个专门针对Apple AppStore和Google Play应用内购买(IAP)进行验证的Python库。这个库利用Python的强大功能和灵活性,为开发者提供了一个便捷的方式来验证用户在应用内的购买是否合法有效,从而确保应用的...

    Python库 | pyinapp-0.1.5-py3-none-any.whl

    今天我们将聚焦于一个名为pyinapp的库,它在0.1.5版本中提供了对Python应用程序内购买(In-app Purchase, IAP)的支持。这个库主要用于帮助开发者轻松地集成和管理iOS和Android应用内的付费内容,从而实现更加流畅的...

    PyPI 官网下载 | iapsync-2.3.0.tar.gz

    `iapsync`库简化了验证购买、同步购买状态以及管理IAP相关的业务逻辑的过程。`2.3.0`是这个库的特定版本,通常每个新版本都会包含错误修复、性能提升或新功能的添加。 `tar.gz`是一个常见的归档格式,由`tar`工具...

    PyPI 官网下载 | django_ios_storekit-1.0.6-py3-none-any.whl

    这个包的版本为1.0.6,它支持Python 3.x,不依赖特定的硬件架构(none)或操作系统(any),这表明它是跨平台兼容的。 **Django框架与iOS集成** `django_ios_storekit`是针对Django Web框架的一个扩展,它允许...

    Godot-Myket-InApp-Billing-Example:Godot中的Myket应用内结算示例项目

    - **支付处理**:服务器响应后,处理支付结果,可能包括成功、失败或等待用户确认。 - **验证购买**:购买完成后,通过Myket的验证接口确认交易的合法性,防止欺诈。 - **状态同步**:更新游戏内的购买状态,如...

Global site tag (gtag.js) - Google Analytics