/// <summary> /// A <b>Alias</b> transaction is used to manage an account number alias, such as a phone number, /// for a stored value account. The transaction can be used to Add an alias to an existing account, /// Delete an alias from an existing account or Create a new stored value account and add an alias /// to the new account. /// </summary> /// <param name="action">Type of Alias action requested.</param> /// <param name="giftCard">The gift card information (leave null for CREATE action).</param> /// <param name="alias">Alternate identifier used to reference a stored value account.</param> /// <returns>The <see cref="HpsGiftCardAlias"/>.</returns> public HpsGiftCardAlias Alias(HpsGiftCardAliasAction action, HpsGiftCard giftCard, string alias) { var gatewayAction = GiftCardAliasReqBlock1TypeAction.ADD; switch (action) { case HpsGiftCardAliasAction.Create: gatewayAction = GiftCardAliasReqBlock1TypeAction.CREATE; break; case HpsGiftCardAliasAction.Delete: gatewayAction = GiftCardAliasReqBlock1TypeAction.DELETE; break; } /* Build the transaction request. */ var transaction = new PosRequestVer10Transaction { Item = new PosGiftCardAliasReqType { Block1 = new GiftCardAliasReqBlock1Type { Action = gatewayAction, Alias = alias, CardData = HydrateGiftCardData(giftCard) } }, ItemElementName = ItemChoiceType1.GiftCardAlias }; /* Submit the transaction. */ var rsp = DoTransaction(transaction).Ver10; HpsGatewayResponseValidation.CheckResponse(rsp, ItemChoiceType2.GiftCardAlias); var aliasRsp = (PosGiftCardAliasRspType)rsp.Transaction.Item; HpsIssuerResponseValidation.CheckResponse(rsp.Header.GatewayTxnId, aliasRsp.RspCode.ToString(CultureInfo.InvariantCulture), aliasRsp.RspText, HpsCardType.Gift); /* Start to fill out a new transaction response (HpsGiftCardAddValue). */ var response = new HpsGiftCardAlias { Header = HydrateTransactionHeader(rsp.Header), TransactionId = rsp.Header.GatewayTxnId, GiftCard = new HpsGiftCard { Value = aliasRsp.CardData.CardNbr }, ResponseCode = aliasRsp.RspCode.ToString(CultureInfo.InvariantCulture), ResponseText = aliasRsp.RspText }; return(response); }
/// <summary> /// A <b>Alias</b> transaction is used to manage an account number alias, such as a phone number, /// for a stored value account. The transaction can be used to Add an alias to an existing account, /// Delete an alias from an existing account or Create a new stored value account and add an alias /// to the new account. /// </summary> /// <param name="action">Type of Alias action requested.</param> /// <param name="giftCard">The gift card information (leave null for CREATE action).</param> /// <param name="alias">Alternate identifier used to reference a stored value account.</param> /// <returns>The <see cref="HpsGiftCardAlias"/>.</returns> public HpsGiftCardAlias Alias(HpsGiftCardAliasAction action, HpsGiftCard giftCard, string alias) { var gatewayAction = GiftCardAliasReqBlock1TypeAction.ADD; switch (action) { case HpsGiftCardAliasAction.Create: gatewayAction = GiftCardAliasReqBlock1TypeAction.CREATE; break; case HpsGiftCardAliasAction.Delete: gatewayAction = GiftCardAliasReqBlock1TypeAction.DELETE; break; } /* Build the transaction request. */ var transaction = new PosRequestVer10Transaction { Item = new PosGiftCardAliasReqType { Block1 = new GiftCardAliasReqBlock1Type { Action = gatewayAction, Alias = alias, CardData = HydrateGiftCardData(giftCard) } }, ItemElementName = ItemChoiceType1.GiftCardAlias }; /* Submit the transaction. */ var rsp = DoTransaction(transaction).Ver10; HpsGatewayResponseValidation.CheckResponse(rsp, ItemChoiceType2.GiftCardAlias); var aliasRsp = (PosGiftCardAliasRspType)rsp.Transaction.Item; HpsIssuerResponseValidation.CheckResponse(rsp.Header.GatewayTxnId, aliasRsp.RspCode.ToString(CultureInfo.InvariantCulture), aliasRsp.RspText); /* Start to fill out a new transaction response (HpsGiftCardAddValue). */ var response = new HpsGiftCardAlias { Header = HydrateTransactionHeader(rsp.Header), TransactionId = rsp.Header.GatewayTxnId, GiftCard = new HpsGiftCard { Value = aliasRsp.CardData.CardNbr }, ResponseCode = aliasRsp.RspCode.ToString(CultureInfo.InvariantCulture), ResponseText = aliasRsp.RspText }; return response; }