Example #1
0
// check the given transaction id to verify there is an associated transaction in the OPS state
//  having the same op_code
// return associated transaction via tr
// success: SUCCESS
// failure: ERRNO_MP_NOT_FOUND, ERRNO_MP_INVALID_CARD, ERRNO_MP_NO_OPS
int transaction_ops_done(transaction_t ** tr, packet_head_t * pkt_hdr_ptr, list_t * tr_list) {
	RET_ON_FAIL(transaction_get(tr, pkt_hdr_ptr->transaction_id, pkt_hdr_ptr->op_code, tr_list));
	if(pkt_hdr_ptr->card_id != (*tr)->card_id) {return ERRNO_MP_INVALID_CARD;}
	if((*tr)->state != OPS) {return ERRNO_MP_NO_OPS;}

	return SUCCESS;
}
Example #2
0
// find the transaction in tr_list that was a purchase with purchase_id and return it in ref_tr
// success: SUCCESS
// failure: ERRNO_MP_NOT_FOUND
int transaction_get_and_verify_purchase_id(list_t * tr_list, packet_data_refund_t * pdr, transaction_t ** ref_tr) {
	RET_ON_FAIL(transaction_get(ref_tr, pdr->transaction_id, PURCHASE, tr_list));

	// verify purchase_id
	packet_data_purchase_t * p = (packet_data_purchase_t *)(*ref_tr)->details;
	if(p->purchase_id != pdr->purchase_id) {return ERRNO_MP_NOT_FOUND;}

	return SUCCESS;
}
Example #3
0
static val* execute_get(transaction* t, void* k, int ksize) {
	key _k;
	_k.data = k;
	_k.size = ksize;
	return transaction_get(t, &_k);
}