Paypal 不发送购物车中的商品数量

标签 paypal paypal-ipn

我有一个简单的 Paypal 购买按钮。用户被重定向到 paypal 网关进行支付,他可以在其中选择他想要购买的商品数量。

我的问题是我无法在服务器的 IPN 变量中看到(用户输入的)项目数,变量 num_cart_items 始终为 1。

解决我的问题的一种方法是禁用用户选择他想购买的商品数量的可能性,但我不确定是否可行。 或者从价格中推断出商品数量,但这更像是一种 hack。


编辑

这是我在我的 django 服务器上收到的对象(使用 django-paypal,在 payment_was_successful 信号中),您可以看到 query 属性有 quantity1,但不是对象本身:

{'created_at': datetime.datetime(2014, 6, 27, 10, 7, 50, 798488, tzinfo=<UTC>), 
'last_name': u'LASTNAME', 
'shipping_method': u'', 
'query': u'mc_gross=3.00&protection_eligibility=Ineligible&item_number1=&payer_id=Q6E6KSFDPM3U6&tax=0.00&payment_date=03%3A06%3A57+Jun+27%2C+2014+PDT&payment_status=Completed&charset=windows-1252&mc_shipping=0.00&mc_handling=0.00&first_name=FIRSTNAME&mc_fee=0.35&notify_version=3.8&custom=%7B%22user%22%3A%22username%22%2C%22location%22%3A%7B%22x%22%3A202%2C%22y%22%3A223%7D%7D&payer_status=verified&business=email-facilitator%40gmail.com&num_cart_items=1&mc_handling1=0.00&verify_sign=SECRET_CODE&payer_email=email%40gmail.com&mc_shipping1=0.00&tax1=0.00&btn_id1=2965595&txn_id=2KW31663CC752394K&payment_type=instant&last_name=LASTNAME&item_name1=Romanescoins&receiver_email=email-facilitator%40gmail.com&payment_fee=&quantity1=3&receiver_id=CUMWR6T2ARF36&txn_type=cart&mc_gross_1=3.00&mc_currency=EUR&residence_country=FR&test_ipn=1&transaction_subject=%7B%22user%22%3A%22username%22%2C%22location%22%3A%7B%22x%22%3A202%2C%22y%22%3A223%7D%7D&payment_gross=&ipn_track_id=a48170aadb705', 
'outstanding_balance': None, 
'subscr_id': u'', 
'auction_multi_item': None, 
'item_name': u'', 
'case_id': u'', 
'address_name': u'', 
'transaction_entity': u'', 
'from_view': u'', 
'auction_closing_date': None, 
'password': u'', 
'auction_buyer_id': u'', 
'address_country_code': u'', 
'address_city': u'', 
'address_status': u'', 
'auth_exp': u'', 
'payer_email': u'email@gmail.com', 
'mc_gross': Decimal('3.00'), 
'reattempt': u'', 
'handling_amount': None, 
'reason_code': u'', 
'remaining_settle': None, 
'invoice': u'', 
'address_state': u'', 
'num_cart_items': 1, 
'address_country': u'', 
'payer_business_name': u'', 
'first_name': u'FIRSTNAME', 
'mc_shipping': Decimal('0.00'), 
'flag_info': u'', 
'for_auction': None, 
'profile_status': u'', 
'item_number': u'', 
'business': u'email-facilitator@gmail.com', 
'settle_currency': u'', 
'shipping': None, 
'amount': None, 
'currency_code': u'', 
'txn_id': u'2KW31663CC752394K', 
'payment_status': u'Completed', 
'payment_gross': None, 
'retry_at': None, 
'exchange_rate': None, 
'residence_country': u'FR', 
'payer_status': u'verified', 
'address_street': u'', 
'initial_payment_amount': None, 
'auth_amount': None, 
'custom': u'{"user":"username","location":{"x":202,"y":223}}', 
'notify_version': Decimal('3.8'), 
'period_type': u'', 
'settle_amount': None, 
'recurring': u'', 
'pending_reason': u'', 
'username': u'', 
'tax': Decimal('0.00'), 
'memo': u'', 
'payer_id': u'Q6E6KSFDPM3U6', 
'flag': False, 
'mc_handling': Decimal('0.00'), 
'address_zip': u'', 
'mc_fee': Decimal('0.35'), 
'payment_type': u'instant', 
'amount1': None, 
'recurring_payment_id': u'', 
'protection_eligibility': u'Ineligible', 
'receiver_email': u'email-facilitator@gmail.com', 
'_state': <django.db.models.base.ModelState object at 0x2248550>, 
'updated_at': datetime.datetime(2014, 6, 27, 10, 7, 50, 798510, tzinfo=<UTC>), 
'time_created': None, 
'mc_currency': u'EUR', 
'option_name1': u'', 
'subscr_date': None, 
'option_name2': u'', 
'txn_type': u'cart', 
'recur_times': None, 
'auth_status': u'', 
'id': 90, 
'rp_invoice_id': u'', 
'payment_cycle': u'', 
'subscr_effective': None, 
'charset': u'windows-1252', 
'parent_txn_id': u'', 
'auth_id': u'', 
'transaction_subject': u'{"user":"username","location":{"x":202,"y":223}}', 
'contact_phone': u'', 
'product_name': u'', 
'test_ipn': True, 
'receiver_id': u'CUMWR6T2ARF36', 
'payment_date': datetime.datetime(2014, 6, 27, 3, 6, 57, tzinfo=<LocalTimezone>), 
'amount_per_cycle': None, 
'period2': u'', 
'period3': u'', 
'period1': u'', 
'verify_sign': u'SECRET_CODE', 
'flag_code': u'', 
'ipaddress': '127.0.0.1', 
'response': u'VERIFIED', 
'product_type': u'', 
'receipt_id': u'', 
'amount3': None, 
'amount2': None, 
'next_payment_date': None, 
'mc_amount3': None, 
'mc_amount2': None, 
'mc_amount1': None, 
'case_creation_date': None, 
'case_type': u'', 
'quantity': None}

最佳答案

num_cart_items 是购物车中不同项目的数量。对于购物车交易,每件商品的数量在quantity1, quantity2等中,否则在quantity中。

这一切都记录在案。

关于Paypal 不发送购物车中的商品数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323632/

相关文章:

ruby-on-rails - 如何在 Ruby on Rails 中集成 Paypal 集成

Paypal Mass 支付 IPN,payment_status 为 Denied

asp.net - Paypal 响应未出现在 Paypal IPN 的 notify_url 页面上

PayPal IPN 停止发送 mc_shipping 和自定义字段

delphi - 如何使 Windows 按钮表现为网站按钮

c# - 网站 Paypal 整合

php - 如何拒绝通过 PayPal IPN 付款?

paypal - PayPal 的 "custom"变量必须是唯一的吗?

magento - 如何编辑 Paypal API 错误信息?

paypal - 支付结帐。更改收件人姓名