将PayPal退款交易链接到父交易

时间:2014-11-13 12:58:04

标签: sql-server sql-server-2008 tsql paypal

我有一份PayPal交易清单。

Date                    Name        Type                            Status          Currency    Gross   Fee Net         FromEmailAddress    ToEmailAddress              TransactionID       CounterpartyStatus  AddressStatus   ItemTitle   ItemID  PPAmount    InsuranceAmount VAT AuctionSite BuyerID ReferenceTxnID      InvoiceNumber   CustomNumber    Balance     AddressLine1    AddressLine2    TownCity    State       Postcode    Country
2014-10-09 12:30:35.000 Joe Bloggs  Shopping Cart Payment Received  Completed       GBP         16.72   -0.43   16.29   customer@gmail.com  sales@mycompany.co.uk       63U4AAAAAAAA4602    Non-US – Verified   Confirmed       Shopping Cart       0.00        0.00                                                                        1122982         20,915.27   22 Greens Street                AnyTown     AnyCounty   AA11 8HF    United Kingdom
2014-09-29 11:55:48.000 Joe Bloggs  Refund                          Completed       GBP         -3.59   0.05    -3.54   customer@gmail.com                              0DF00BBBBBBBB772W                                                              0        0       0                               8MF7DDDDDDDD7635U   579649                          49,194.56
2014-09-28 12:48:59.000 Joe Bloggs  Shopping Cart Payment Received  Completed       GBP         17.76   -0.45   17.31   customer@gmail.com  sales@mycompany.co.uk       20W1CCCCCCCC6710M   Non-US – Verified   Confirmed       Shopping Cart       0.00        0       0.00                                                                1122982         47,463.42   22 Greens Street                AnyTown     AnyCounty   AA11 8HF    United Kingdom
2014-09-28 12:25:26.000 Joe Bloggs  Shopping Cart Payment Received  Partially Refunded  GBP     43.74   -0.81   42.93   customer@gmail.com  sales@mycompany.co.uk       8MF7DDDDDDDD7635U   Non-US – Verified   Confirmed       Shopping Cart       0.00        0       0.00                                                                1122982         47,371.52   22 Greens Street                AnyTown     AnyCounty   AA11 8HF    United Kingdom
2014-09-15 15:02:27.000 Joe Bloggs  Refund                          Completed       GBP           -64.00    1.22    -62.78  customer@gmail.com                          7CY0EEEEEEEE48450                                                              0        0       0                               8C01GGGGGGGG8893T   574745                          29,783.89
2014-09-11 15:16:13.000 Joe Bloggs  Shopping Cart Payment Received  Completed       GBP         21.66   -0.61   21.05   customer@gmail.com  sales@mycompany.co.uk       62A5FFFFFFFF4763X   Non-US – Verified   Confirmed       Shopping Cart       0.00        0       0.00                                                                1122982         26,350.34   22 Greens Street                AnyTown     AnyCounty   AA11 8HF    United Kingdom
2014-09-04 18:04:48.000 Joe Bloggs  Shopping Cart Payment Received  Refunded        GBP         64.00   -1.42   62.58   customer@gmail.com  sales@mycompany.co.uk       8C01GGGGGGGG8893T   Non-US – Verified   Confirmed       Shopping Cart       0.00        0       0.00                                                                1122982         13,891.47   22 Greens Street                AnyTown     AnyCounty   AA11 8HF    United Kingdom

在大多数情况下,我可以查找Status CompletedSum结果,以获得给定日期范围的总收入数字。我还可以Sum一个结果集给我一笔退款Status = 'Completed' AND Type = 'Refund'

我遇到问题的方法是获取已Partially Refunded的交易清单和退款金额。 ReferenceTxnID旨在保存它所引用的父事务的TransactionId,但情况并非总是如此。退款可以随时进行,因此我无法使用Date,客户可以进行多笔交易,因此我无法使用FromEmailAddressCustomNumber或地址的任何部分。另一件让我感到困惑的事情是单个交易可能有多个Partial Refunds

理想情况下,我想要的是包含显示已退款总计的列的销售交易列表。这就是我到目前为止一直在玩的东西(或者是在圆圈之后剩下的东西):

 Select t1.Date, t1.Name, t1.Status, t1.Gross, t1.Net, t1.Fee, IsNull(t2.Gross, 0) As RefundGross, ISNULL(t2.Net,0) As RefundNet, IsNull(t2.Fee,0) As RefundFee, t1.TransactionID, t1.PPAmount from 
  tblPayPalTransactions t1 LEFT JOIN tblPayPalTransactions t2 
    ON (t2.ReferenceTxnID = t1.TransactionID) AND (t2.Type = 'Refund')
    WHERE t1.AuctionSite = ''   --Can be zero length string or 'Ebay' I never want these together
    AND Cast(t1.[Date] As Date) BETWEEN '01 Oct 2014' AND '31 Oct 2014'
    And (t1.Status = 'Completed' or t1.Status = 'Partially Refunded')
  --AND t1.Name = 'Joe Bloggs' --So I can see particular transaction results by customer name
  --AND  IsNull(Cast(t2.Gross As Decimal(8,2)), 0) < 0  --So I can see just those with a refund
  Order By t1.[Date] 

只要有ReferenceTxnID,这几乎就在那里(除了多次部分退款)

我需要的结果类型:

enter image description here

我正在寻找的是关于如何使用上面的数据集绕过缺少ReferenceTxnID的交易的建议。我很难将退款与原始交易相匹配。

1 个答案:

答案 0 :(得分:0)

您可以使用PayPal“TransactionSearch”API获取与父父ID相关的所有退款交易ID。您需要在请求中传递原始交易ID,您将获得所有相关的退款支付ID作为回应。我已经为一个附加了五个部分退款的事务包含了示例请求和响应。

NVP请求:

USER=XXXXXXXXXXXX&PWD=XXXXXXXXXXXXXXX&SIGNATURE=XXXXXXXXX&VERSION=109.0&METHOD=TransactionSearch&STARTDATE=2014-08-12T00:00:00Z&TRANSACTIONCLASS=All&TRANSACTIONID=8VX52781A08183223

NVP回复:

L_TIMESTAMP0=2014-11-13T13:47:34Z
L_TIMESTAMP1=2014-11-13T13:46:37Z
L_TIMESTAMP2=2014-11-13T13:45:34Z
L_TIMESTAMP3=2014-11-13T13:38:21Z
L_TIMESTAMP4=2014-10-27T16:21:06Z
L_TIMEZONE0=GMT
L_TIMEZONE1=GMT
L_TIMEZONE2=GMT
L_TIMEZONE3=GMT
L_TIMEZONE4=GMT
L_TYPE0=Refund
L_TYPE1=Refund
L_TYPE2=Refund
L_TYPE3=Refund
L_TYPE4=Payment
L_EMAIL0=1Y607358F75052246@dcc.paypal.com
L_EMAIL1=1Y607358F75052246@dcc.paypal.com
L_EMAIL2=1Y607358F75052246@dcc.paypal.com
L_EMAIL3=1Y607358F75052246@dcc.paypal.com
L_NAME0=John Test
L_NAME1=John Test
L_NAME2=John Test
L_NAME3=John Test
L_NAME4=John Test
L_TRANSACTIONID0=2JG39166GV168310K
L_TRANSACTIONID1=49T02886PW5166630
L_TRANSACTIONID2=5KF36133MV122512D
L_TRANSACTIONID3=5HY460350V470314R
L_TRANSACTIONID4=8VX52781A08183223
L_STATUS0=Completed
L_STATUS1=Completed
L_STATUS2=Completed
L_STATUS3=Completed
L_STATUS4=Refunded
L_AMT0=-2.00
L_AMT1=-1.00
L_AMT2=-1.00
L_AMT3=-1.00
L_AMT4=5.00
L_CURRENCYCODE0=USD
L_CURRENCYCODE1=USD
L_CURRENCYCODE2=USD
L_CURRENCYCODE3=USD
L_CURRENCYCODE4=USD
L_FEEAMT0=0.06
L_FEEAMT1=0.03
L_FEEAMT2=0.03
L_FEEAMT3=0.03
L_FEEAMT4=-0.50
L_NETAMT0=-1.94
L_NETAMT1=-0.97
L_NETAMT2=-0.97
L_NETAMT3=-0.97
L_NETAMT4=4.50
TIMESTAMP=2014-11-13T13:47:40Z
CORRELATIONID=be00ca73dfa3a
ACK=Success
VERSION=109.0
BUILD=13443904

enter image description here

相关问题