如何从新的 Paypal Sync Api 获取销售 ID

Posted

技术标签:

【中文标题】如何从新的 Paypal Sync Api 获取销售 ID【英文标题】:How to get sale ID from the new Paypal Sync Api 【发布时间】:2019-11-24 05:34:26 【问题描述】:

我正在使用新的 Paypal Sync Api 来获取一段时间内的所有交易。我也需要能够退款。 由于我们所有的交易都是销售,我需要销售 ID 来退还交易,如 https://developer.paypal.com/docs/integration/direct/payments/refund-payments/#set-up-your-development-environment 中所述 不幸的是,我在交易响应中找不到任何可用作销售 ID 的内容


    "transaction_details": [

        
            "transaction_info": 
                "paypal_account_id": "6EN7PS8P9DV6J",
                "transaction_id": "05P62542TL3758730",
                "transaction_event_code": "T0006",
                "transaction_initiation_date": "2019-07-04T12:49:55+0000",
                "transaction_updated_date": "2019-07-04T12:53:09+0000",
                "transaction_amount": 
                    "currency_code": "USD",
                    "value": "10.00"
                ,
                "fee_amount": 
                    "currency_code": "USD",
                    "value": "-0.49"
                ,
                "transaction_status": "S",
                "ending_balance": 
                    "currency_code": "USD",
                    "value": "0.00"
                ,
                "available_balance": 
                    "currency_code": "USD",
                    "value": "0.00"
                ,
                "protection_eligibility": "01"
            ,
            "payer_info": 
                "account_id": "6EN7PS8P9DV6J",
                "email_address": "paypaltester3@test.de",
                "address_status": "Y",
                "payer_status": "Y",
                "payer_name": 
                    "given_name": "Tester Three",
                    "surname": "Tester Three",
                    "alternate_full_name": "Tester Three Tester Three"
                ,
                "country_code": "DE"
            ,
            "shipping_info": 
                "name": "Tester Three, Tester Three",
                "address": 
                    "line1": "Teststreet. 1",
                    "city": "SomeCity",
                    "country_code": "DE",
                    "postal_code": "23434"
                
            ,
            "cart_info": 
                "item_details": [
                    
                        "item_quantity": "1",
                        "item_unit_price": 
                            "currency_code": "USD",
                            "value": "10.00"
                        ,
                        "item_amount": 
                            "currency_code": "USD",
                            "value": "10.00"
                        ,
                        "total_item_amount": 
                            "currency_code": "USD",
                            "value": "10.00"
                        
                    
                ]
            ,
            "store_info": ,
            "auction_info": ,
            "incentive_info": 
        
    ],
    "account_number": "96B45RCG6AX3E",
    "start_date": "2019-07-03T00:00:00+0000",
    "end_date": "2019-07-04T16:00:00+0000",
    "last_refreshed_datetime": "2019-07-15T08:59:59+0000",
    "page": 1,
    "total_items": 15,
    "total_pages": 1,
    "links": [
        
            "href": "https://api.sandbox.paypal.com/v1/reporting/transactions?start_date=2019-07-03T00%3A00%3A00Z&end_date=2019-07-04T16%3A00%3A00Z&fields=all&page_size=500&page=1",
            "rel": "self",
            "method": "GET"
        
    ]

我使用 transactionId 和 invoiceId 测试了退款调用,但都返回了“INTERNAL_SERVICE_ERROR”。

在客户完成付款后,有什么方法可以通过 API 获取销售 ID,还是我必须在创建付款后将销售 ID 保存在数据库中?

谢谢

【问题讨论】:

【参考方案1】:

使用 T0006 你很幸运,这是一个简单的PayPal Checkout APIs. 交易,使用 T0002 会更难。无论如何,没有响应有更多的数据。示例如下。 您可以在invoice_numberinvoice_id 中找到它。如果您在付款创建过程中有这些数据就好了。

"transaction_details":[ 
       
         "transaction_info": 
            "paypal_account_id":"HHHHH",
            "transaction_id":"040404040404040",
            "transaction_event_code":"T0006",
            "transaction_initiation_date":"2019-10-31T06:21:37+0000",
            "transaction_updated_date":"2019-10-31T06:31:02+0000",
            "transaction_amount": 
               "currency_code":"AUD",
               "value":"96.90"
            ,
            "fee_amount": 
               "currency_code":"AUD",
               "value":"-4.08"
            ,
            "shipping_amount": 
               "currency_code":"AUD",
               "value":"17.90"
            ,
            "transaction_status":"S",
            "transaction_subject":"Full License",
            "ending_balance": 
               "currency_code":"AUD",
               "value":"92.82"
            ,
            "available_balance": 
               "currency_code":"AUD",
               "value":"92.82"
            ,
            "invoice_id":"1110-US1",
            "protection_eligibility":"01"
         ,
         "payer_info": 
            "account_id":"HHHHH",
            "email_address":"test@paypal.com",
            "address_status":"Y",
            "payer_status":"Y",
            "payer_name": 
               "given_name":"First",
               "surname":"Last",
               "alternate_full_name":"First Last"
            ,
            "country_code":"GB"
         ,
         "shipping_info": 
            "name":"Shaun Smith",
            "address": 
               "line1":"123, Some Road",
               "line2":"Shop 4",
               "city":"Melbourne",
               "country_code":"AU",
               "postal_code":"3185"
            
         ,
         "cart_info": 
            "item_details":[ 
                
                  "item_name":"Full License",
                  "item_description":"Full License",
                  "item_quantity":"1",
                  "item_unit_price": 
                     "currency_code":"AUD",
                     "value":"79.00"
                  ,
                  "item_amount": 
                     "currency_code":"AUD",
                     "value":"79.00"
                  ,
                  "total_item_amount": 
                     "currency_code":"AUD",
                     "value":"79.00"
                  ,
                  "invoice_number":"1110-US1"
               
            ]
         ,
         "store_info": 

         ,
         "auction_info": 

         ,
         "incentive_info": 

         
      ,

【讨论】:

以上是关于如何从新的 Paypal Sync Api 获取销售 ID的主要内容,如果未能解决你的问题,请参考以下文章

PayPal REST API - '发生内部服务错误'

如何通过 API 获取我的 PayPal 账户的交易历史

如何在 PayPal 订阅 API 中获取用户的订阅状态

如何通过 iOS 中的 API 调用获取 PayPal 刷新令牌

Paypal Rest API - 如何获取客户端 ID 和密码?

如何通过 eBay API 获取 PayPal TransactionID