我正在使用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的回应是什么?