2

Authorize.Net CIM API を使用して GetCustomerPaymentProfile を使用して支払い情報を取得しようとしています。特に、マスクされたクレジット カード番号とクレジット カードの種類、またはマスクされた当座預金口座番号が必要です。API ドキュメントを読み、それに従いましたが、IntelliSense がないため、プロジェクトがコンパイルされません。

var data = Service.GetCustomerPaymentProfile(MerchantAuthentication, profileId, customerPaymentProfileId);

var creditCard = data.creditCard... (nothing here)

C# を使用して、これを行うにはどうすればよいですか?

編集:支払いオブジェクトが動的であるように見えます。これが私が最終的に使用したコードです。助けてくれてありがとう!

        if (data.paymentProfile.payment.Item.GetType() == typeof(CreditCardMaskedType))
        {
            var obj = (CreditCardMaskedType) data.paymentProfile.payment.Item;
            retval.CreditCardNumber = obj.cardNumber;
            retval.CreditCardType = obj.cardType;
        }

        if (data.paymentProfile.payment.Item.GetType() == typeof(BankAccountMaskedType))
        {
            var obj = (BankAccountMaskedType)data.paymentProfile.payment.Item;
            retval.BankAccountNumber = obj.accountNumber;
            retval.BankRoutingNumber = obj.routingNumber;
        }
4

1 に答える 1

2

私はC#を知りませんが、そのセマンティクスが他の言語に従う場合、これはうまくいくはずです:

var creditCard = data.paymentProfile.payment.creditCard.cardNumber;

参考になる XML 出力のサンプルを次に示します。

<?xml version="1.0" encoding="utf-8"?>
<getCustomerPaymentProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <messages>
    <resultCode>Ok</resultCode>
    <message>
      <code>I00001</code>
      <text>Successful.</text>
    </message>
  </messages>
  <paymentProfile>
    <billTo>
      <firstName>John</firstName>
      <lastName>Smith</lastName>
      <address>123 Main Street</address>
      <city>Townsville</city>
      <state>NJ</state>
      <zip>12345</zip>
      <phoneNumber>800-555-1234</phoneNumber>
    </billTo>
    <customerPaymentProfileId>4796541</customerPaymentProfileId>
    <payment>
      <creditCard>
        <cardNumber>XXXX1111</cardNumber>
        <expirationDate>XXXX</expirationDate>
      </creditCard>
    </payment>
  </paymentProfile>
</getCustomerPaymentProfileResponse>
于 2012-12-11T20:01:10.717 に答える