如何查看.Net中执行的PayPal付款的结果?

时间:2016-11-04 22:19:02

标签: .net paypal paypal-rest-sdk

我正在使用PayPal .Net SDK实施付款。我已经达到了"执行"步。

var pe = new PaymentExecution() { payer_id = payerID };
var pmt = await PayPal.Api.Payment.ExecuteAsync(apiContext, paymentId, pe);

但是,我找不到如何知道付款状态?

总结以下唯一方法的值?

pmt.transactions[i].related_resources[j].sale.amount

更新

这就是我现在这样做的方式(欢迎任何改进建议):

var pmt = await PayPal.Api.Payment.ExecuteAsync(apiContext, paymentId, pe);

if (pmt.state == STATE_CREATED)
    throw new PayPalExecuteException() { Error = PayPalExecuteException.PayPalExecuteErrors.Pending };
if (pmt.state == STATE_FAILED)
    throw new PayPalExecuteException() { Error = PayPalExecuteException.PayPalExecuteErrors.Failed };

decimal totalAmount = 0;
decimal fees = 0;
string amountCurrency = "";
string feesCurrency = "";
foreach(var trans in pmt.transactions)
{
    foreach(var ress in trans.related_resources)
    {
        if (ress.sale.state == STATE_COMPLETED)
        {
            totalAmount += decimal.Parse(ress.sale.amount.total, CultureEnUs);
            fees += decimal.Parse(ress.sale.transaction_fee.value, CultureEnUs);
            amountCurrency = ress.sale.amount.currency;
            feesCurrency = ress.sale.transaction_fee.currency;
        }
    }
}

我使用这种方法,因为我不知道付款是否可以为同一次销售进行多次交易:例如,如果销售额为100美元,则该帐户的帐户为50美元,此客户将支付一半的费用。账户和信用卡的一半,在这种情况下PayPal的回应是什么?

0 个答案:

没有答案