#include <set_msg.h> typedef struct PRes_ { asn1set__MessageWrapper messageWrapper; asn1set__PResData pResData; cert_identity merchantSignatureCID; /* only cardholder uses */ asn1set__MerchantDataSyntax merchantData; struct AcqCardMsgSeq_ *acqCardMsgSeq; } *PRes; PRes safe_cast_PRes(msg) set_msg msg; /* IN */
PRes
contains the data from a SET PRes message in native C form. See the asn_types.h and
asn1set.h header files for the declarations of the various types. See the SET specification for a
description of individual fields. PRes
message objects of type set_msg
can be cast to type PRes
using the safe_cast_PRes()
routine.
Merchant software should ignore merchantData
and acqCardMsgSeq
.
struct AcqCardMsgSeq_
field.
make_set_msg()
results in the protocol layer filling in the following fields:
* messageWrapper.messageHeader.version * messageWrapper.messageHeader.date * messageWrapper.messageHeader.messageIDs * messageWrapper.messageHeader.rrPID * messageWrapper.messageHeader.swIdent * messageWrapper.message._choice * pResData.transIDs * pResData.rrpid * pResData.chall_C * pResData.brandCRLIdentifier (optional) * pResData.pResPayloadSeq->pResPayload.results.acqCardMsg (optional) * acqCardMsgSeq * merchantSignatureCID
It is unwise for applications to change the contents of the fields filled in by the protocol layer.
After calling make_set_msg()
, merchant software must fill in the following required fields:
* pResData.pResPayloadSeq->pResPayload.completionCode
Non-required fields may be left empty at the discretion of the merchant application, subject to any business constraints placed on the application.
STATE_BACKKEYDATA get STATE_CHALL_C2 get STATE_CHALL_C get STATE_INQREQ_RRPID get STATE_PREQ_RRPID get STATE_TRANSIDS put
STATE_ACQCARDMSG get STATE_CHALL_C2 get STATE_CHALL_C get STATE_INQREQ_RRPID get STATE_MERCHANT_SIGID get STATE_PREQ_RRPID get STATE_TRANSIDS get STATE_TRANSIDS put
safe_cast_PRes()
returns a pointer to a PRes
data structure. Objects of type
set_msg
that were not created with message type asn1set__Message__pRes
will cause
safe_cast_PRes()
to fail. On failure, safe_cast_PRes()
returns a 0 pointer. Optional fields that are filled in require an application of the SET_PRESENT()
macro. See
documentation on ASN.1/DER runtime types for additional information.
pRes = safe_cast_PRes(response); assert(pRes != 0); pRes->messageWrapper.messageHeader.swIdent._choice = asn1set__SWIdent__visibleString; pRes->messageWrapper.messageHeader.swIdent.u.visibleString = "MerchantCode v1.0b"; /* ... */
Copyright © 1996, 1997, Visa International Service Association and MasterCard International Incorporated
All Rights Reserved.