USP_BATCHBBNCDONATION_SETTOKEN
Updates a Blackbaud Internet Solutions batch donation record to use a BBPS token instead of a full card number.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CREDITCARDTOKEN | uniqueidentifier | IN | |
@PARTIALCARDNUMBER | nvarchar(4) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_BATCHBBNCDONATION_SETTOKEN
(
@ID uniqueidentifier,
@CREDITCARDTOKEN uniqueidentifier,
@PARTIALCARDNUMBER nvarchar(4),
@CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime
)
as
set nocount on
if @CURRENTDATE is null
set @CURRENTDATE = getdate()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
exec dbo.USP_GET_KEY_ACCESS
begin try
update dbo.BATCHBBNCDONATION set
GIFTINFORMATION.modify ('
insert <ITEM>
<PROCESS>True</PROCESS>
<FIELD>Credit card token</FIELD>
<NEWVALUE>{sql:variable("@CREDITCARDTOKEN")}</NEWVALUE>
<ACTION>0</ACTION>
<FIELDKEY>CREDITCARDTOKEN</FIELDKEY>
<DATATYPE>1</DATATYPE>
</ITEM>
as last
into (/GIFTINFORMATION)[1]'),
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where ID = @ID
declare @MASKEDPARTIALCARDNUMBER nvarchar(16)
if coalesce(@PARTIALCARDNUMBER, '') <> ''
set @MASKEDPARTIALCARDNUMBER = '************' + @PARTIALCARDNUMBER
else
set @MASKEDPARTIALCARDNUMBER = ''
declare @ENCRYPTEDPARTIALCARDNUMBER varbinary(4000)
set @ENCRYPTEDPARTIALCARDNUMBER = EncryptByKey(key_GUID('sym_BBInfinity'), @MASKEDPARTIALCARDNUMBER)
update dbo.BATCHBBNCDONATION set
GIFTINFORMATION.modify ('
replace value of (/GIFTINFORMATION/ITEM[FIELDKEY="CREDITCARDNUMBER"]/NEWVALUE/text())[1]
with sql:variable("@ENCRYPTEDPARTIALCARDNUMBER")'),
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where ID = @ID
-- Remove the audit records since they contain the full card number
delete from dbo.BATCHBBNCDONATIONAUDIT where AUDITRECORDID = @ID
close symmetric key sym_BBInfinity
end try
begin catch
close symmetric key sym_BBInfinity
return 1
end catch
return 0