Wiki

Scale Your Enterprise

User Tools

Site Tools


cc:cc_token_upgrade

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cc:cc_token_upgrade [2020/01/28 09:52]
dtucker [BP Associated Card Gateway Data Migration Time Factors]
cc:cc_token_upgrade [2023/02/03 09:16] (current)
dtucker [Migration of In-Process Transaction Records]
Line 1: Line 1:
 ====== TWBS Credit Card Token/Profile Version Primer ====== ====== TWBS Credit Card Token/Profile Version Primer ======
 +
 +This section contains important information for Partners and Consultants that should be reviewed prior to the implementation of the fully tokenized version of the TWBS CC Processing application. This applies to new customer installations and the upgrade of existing TWBS CC customers. Also, please remember that this is a new major release of the application and should always be fully tested in a separate Test environment prior to implementation.
 +
 +<WRAP center round important>
 +For customers upgrading from a previous version of TWBS Credit Card who need to migrate existing cards to the gateway, a copy of the TWBS_SBO-Common **MUST** be restored in the environment. The TWBS CC application will access a key piece of information during the migration process. This is also required even if just performing a full or partial test migration.
 +</WRAP>
 +
 +<WRAP center round info>
 +The latest version of TWBS CC can **only** be used with the Authorize.Net, CyberSource, or PayEezy gateways. Support for Pay Flow Pro and Moneris is still available in the 92.1.0 version of the application.
 +</WRAP>
 +
 +<WRAP center round info>
 +In this version of TWBS CC, the profiles are gateway account dependent, **not** database dependent. All testing, including test card migrations, should be done on gateway sandbox/test accounts, not on customer live gateway accounts. Any profiles created on the gateway on a live account in a test database will not be accessible in the production database without additional assistance. Any profiles created on the gateway on a live account in a test database should be removed at the completion of testing.
 +</WRAP> 
 +
 +<WRAP center round info>
 +While latest version of TWBS CC is compliant with the use of TLS 1.2 for data transactions, the 92.1.0 version of the application has patches that are compliant with TLS 1.2 and work for all of the gateways supported by TWBS CC including the Authorize.Net gateway. This version retains locally stored card numbers that are encrypted.
 +</WRAP>
  
  
Line 24: Line 42:
 ===== Card Cleanup Prior to Upgrade to TWBS CC Tokenized Version – Highly Recommended =====  ===== Card Cleanup Prior to Upgrade to TWBS CC Tokenized Version – Highly Recommended ===== 
  
-Expired cards will migrate to the gateway. Due to some of the gateway limitations discussed in the gateway +Expired cards will migrate to the gateway. Due to some of the gateway limitations discussed in the gateway specific sections, it is advised that prior to the card migration that the data be cleaned up. This can include identifying the cards that are already expiredproviding the data to the customer so they can update the cards which they want to retain, and then removing all remaining expired cards. Other customers may simply choose to remove all cards that have already expired.
-specific sections, it is advised that prior to the card migration that the data be cleaned up. This can be +
-identifying the cards that are already expired and providing the data to the customer to determine which cards +
-need to be updated followed by removal of all cards that aren’t update and remain expired. Other customers +
-may simply choose to remove all cards that have already expired.+
  
 <WRAP center round info> <WRAP center round info>
 Selection Query to determine how many cards have expired prior to the current month (SQL) Selection Query to determine how many cards have expired prior to the current month (SQL)
  
-SELECT * FROM [@TWBS_CC_BPCC] WHERE CONVERT(INT,RIGHT(U_ExpirationDate,2)) < +SELECT * FROM [@TWBS_CC_BPCC] WHERE CONVERT(INT,RIGHT(U_ExpirationDate,2)) < CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) OR (CONVERT(INT,RIGHT(U_ExpirationDate,2)) = CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) AND CONVERT(INT,LEFT(U_ExpirationDate,2)) < CONVERT(INT,LEFT(MONTH(GETDATE()),2))) </WRAP>
-CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) OR (CONVERT(INT,RIGHT(U_ExpirationDate,2)) +
-= CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) AND +
-CONVERT(INT,LEFT(U_ExpirationDate,2)) < CONVERT(INT,LEFT(MONTH(GETDATE()),2))) </WRAP>+
  
 <WRAP center round info> <WRAP center round info>
 Query to remove cards that have expired prior to the current month (SQL) Query to remove cards that have expired prior to the current month (SQL)
  
-DELETE FROM [@TWBS_CC_BPCC] WHERE CONVERT(INT,RIGHT(U_ExpirationDate,2)) < +DELETE FROM [@TWBS_CC_BPCC] WHERE CONVERT(INT,RIGHT(U_ExpirationDate,2)) < CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) OR (CONVERT(INT,RIGHT(U_ExpirationDate,2)) = CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) AND CONVERT(INT,LEFT(U_ExpirationDate,2)) < CONVERT(INT,LEFT(MONTH(GETDATE()),2))) </WRAP>
-CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) OR (CONVERT(INT,RIGHT(U_ExpirationDate,2)) +
-= CONVERT(INT,RIGHT(YEAR(GETDATE()),2)) AND +
-CONVERT(INT,LEFT(U_ExpirationDate,2)) < CONVERT(INT,LEFT(MONTH(GETDATE()),2))) </WRAP>+
  
 <WRAP center round info> <WRAP center round info>
 Selection Query to determine how many cards have expired prior to the current month (HANA) Selection Query to determine how many cards have expired prior to the current month (HANA)
  
-SELECT * FROM "@TWBS_CC_BPCC" WHERE CAST(RIGHT("U_ExpirationDate",2) as INT) < +SELECT * FROM "@TWBS_CC_BPCC" WHERE CAST(RIGHT("U_ExpirationDate",2) as INT) < CAST(RIGHT(YEAR(NOW()),2) as INT) OR (CAST(RIGHT("U_ExpirationDate",2) as INT) = CAST(RIGHT(YEAR(NOW()),2) as INT) AND CAST(LEFT("U_ExpirationDate",2) as INT) < CAST(LEFT(MONTH(NOW()),2) as INT)) </WRAP>
-CAST(RIGHT(YEAR(NOW()),2) as INT) OR (CAST(RIGHT("U_ExpirationDate",2) as INT) = +
-CAST(RIGHT(YEAR(NOW()),2) as INT) AND CAST(LEFT("U_ExpirationDate",2) as INT) < +
-CAST(LEFT(MONTH(NOW()),2) as INT)) </WRAP>+
  
 <WRAP center round info> <WRAP center round info>
 Query to remove cards that have expired prior to the current month (HANA) Query to remove cards that have expired prior to the current month (HANA)
  
-DELETE FROM "@TWBS_CC_BPCC" WHERE CAST(RIGHT("U_ExpirationDate",2) as INT) < +DELETE FROM "@TWBS_CC_BPCC" WHERE CAST(RIGHT("U_ExpirationDate",2) as INT) < CAST(RIGHT(YEAR(NOW()),2) as INT) OR (CAST(RIGHT("U_ExpirationDate",2) as INT) = CAST(RIGHT(YEAR(NOW()),2) as INT) AND CAST(LEFT("U_ExpirationDate",2) as INT) < CAST(LEFT(MONTH(NOW()),2) as INT)) </WRAP>
-CAST(RIGHT(YEAR(NOW()),2) as INT) OR (CAST(RIGHT("U_ExpirationDate",2) as INT) = +
-CAST(RIGHT(YEAR(NOW()),2) as INT) AND CAST(LEFT("U_ExpirationDate",2) as INT) < +
-CAST(LEFT(MONTH(NOW()),2) as INT)) </WRAP>+
  
 {{:app/image44.jpeg?786}} {{:app/image44.jpeg?786}}
Line 84: Line 86:
 Example: “Migration failed for C130000-C130000 VISA4-You cannot add more than 10 payment profiles.” Example: “Migration failed for C130000-C130000 VISA4-You cannot add more than 10 payment profiles.”
  
 +<WRAP center round info>
 +To determine how many cards completed the migration process you can run the following query:
 +
 +SELECT * FROM [@TWBS_CC_BPCC] WHERE U_CardNumber LIKE '%success%' </WRAP>
 +
 +<WRAP center round info>
 To determine how many cards failed the migration process you can run the following query: To determine how many cards failed the migration process you can run the following query:
  
-SELECT * FROM [@TWBS_CC_BPCC] WHERE U_CardNumber NOT LIKE '%success%'+SELECT * FROM [@TWBS_CC_BPCC] WHERE U_CardNumber LIKE '%failed%' </WRAP>
  
-A list of the cards that failed migration can be provided to the customer as these cards will not be visible in the +A list of the cards that failed migration can be exported from the SQL results into a spreadsheet and provided to the customer as these cards will not be visible in the front end of the application because they will not be stored in the new user table for payment profile information 
-front end of the application because they will not be stored in the new user table for payment profile + 
-information+{{:app/image44.jpeg?786}} 
 + 
 +===== New UDTs in SAP B1 Company DB =====  
 + 
 +  * **@TWBS_LICENSE** – New UDT in all add-ons for local storage of license checking to prevent applications from verifying the license with TWBS web service on every start. Will only create if it does not already exist. 
 +  * **@TWBS_CC_CCTOKEN** – New UDT to store payment profile information (cards) that have been stored on the gateway. 
 +  * **@TWBS_CC_CUSTPROFILE** – New UDT to store customer profile information (BP) that have been stored on the gateway. 
 +  * **@TWBS_CC_TRX** – New UDT to store transaction table information. This table will replace the AM_CCAD table for existing customers.  
 + 
 +<WRAP center round info> 
 +The TWBS Credit Card application does not convert/migrate transaction records from the AM_CCAD table for authorizations and documents that are still open at the time of upgrade. </WRAP> 
 + 
 +{{:app/image44.jpeg?786}} 
 + 
 + 
 +===== Removal of the Encrypted Card Number for Upgrading Customers =====  
 + 
 +During the card migration process, the application will remove all of the encrypted card #’s from the UDT that stored the BP associated cards. However, the application will not remove the encrypted card numbers from the prior transaction table (AM_CCAD). 
 + 
 +<WRAP center round info> 
 +Query to remove encrypted card numbers from the old transaction table (SQL) 
 + 
 +UPDATE AM_CCAD Set CrCardNum = NULL  
 +</WRAP> 
 + 
 +<WRAP center round info> 
 +Query to remove encrypted card numbers from the old transaction table (HANA) 
 + 
 +UPDATE “AM_CCAD” Set “CrCardNum” = NULL </WRAP> 
 + 
 +{{:app/image44.jpeg?786}} 
 + 
 +===== Migration of In-Process Transaction Records =====  
 + 
 +While the application will migrate the business partner associated credit cards into payment profiles on the 
 +gateway, it will not migrate any transaction records from the old table to the new table if there are 
 +authorizations that are in-process and have not been settled prior to the upgrade to the latest version of the 
 +application. To migrate these in-process transactions you will need to run the following queries. 
 + 
 +<WRAP center round info> 
 +Long-term TWBS Credit Card Processing customers may not want to migrate all of the old transaction data into the new table. Usually the last year or so is sufficient to cover all the customer's needs to have transaction data to issue refunds against. </WRAP> 
 + 
 +<WRAP center round info> 
 +INSERT INTO [@TWBS_CC_TRX] (Code, Name, U_DocNum, U_DocType, U_LineID, U_OrigVoucherNum, U_OrigAuthCode, U_VoucherNum, U_AuthCode, U_AuthDate, U_CrCardName, U_CrCardNum, U_CrTypeCode, U_CardValid, U_CreditCur, U_CreditRate, U_OwnerIDNum, U_CreditSum, U_Amount, U_NameonCard, U_Street, U_Block, U_City, U_State, U_Zip, U_TransType, U_ParentDocNum, U_Result, U_Status, U_Deleted, U_EncryptVersion, U_ReAuthorized, U_CardCode, U_CardName, U_DisplayCardNum, U_Address1, U_Settle, U_FatherCard, U_M_Order_ID, U_Processor, U_Address2, U_Address3, U_Country, U_MarkType, U_MarkValue, U_InstlmntNum, U_DocOpenAmt, U_DocEntry)  
 + 
 +SELECT  
 +CONVERT(nvarchar,GETDATE(),101) + '-IMP-' + CONVERT(nvarchar,A.DocType) + '-' + CONVERT(nvarchar,A.DocNum) + '-' + CONVERT(nvarchar,A.LineID) AS [Code],  
 +CONVERT(nvarchar,GETDATE(),101) + '-IMP-' + CONVERT(nvarchar,A.DocType) + '-' + CONVERT(nvarchar,A.DocNum) + '-' + CONVERT(nvarchar,A.LineID) AS [Name],  
 +A.DocNum, A.DocType, A.LineID, A.OrigVoucherNum, A.OrigAuthCode, A.VoucherNum, A.AuthCode, A.AuthDate, A.CrCardName, Right(A.DisplayCardNum,4) AS [CrCardNum], A.CrTypeCode, A.CardValid, A.CreditCur, A.CreditRate, A.OwnerIDNum, A.CreditSum, A.Amount, A.NameonCard, A.Street, A.Block, A.City, A.State, A.Zip, A.TransType, A.ParentDocNum, A.Result, A.Status, A.Deleted, A.EncryptVersion, A.ReAuthorized, A.CardCode, A.CardName, ' ' AS [DisplayCardNum], A.Address1, A.Settle, A.FatherCard, A.M_Order_ID, A.Processor, A.Address2, A.Address3, A.Country, A.MarkType, A.MarkValue, A.InstlmntNum, A.DocOpenAmt, A.DocEntry  
 + 
 +FROM AM_CCAD A (NOLOCK) 
 + 
 +WHERE CONVERT(int,Right(A.AuthDate,2)) IN ('23','22'
 +</WRAP> 
 + 
 +<WRAP center round info> 
 +Additional years can be added to the WHERE clause at your discretion to migrate larger volumes of data. </WRAP>
  
 {{:app/image44.jpeg?786}} {{:app/image44.jpeg?786}}
cc/cc_token_upgrade.1580223156.txt.gz · Last modified: 2020/01/28 09:52 by dtucker