OpenSOAP Transaction Service hLg
2002/2/28
gUNVǗT[rX{̂́Csrc/tools/Transaction/ɂ܂D
ClientƓoT[rX̃Tvsamples/Transaction/ɂ܂D

PDTv
OpenSOAP Transaction ServiceiȉCgUNVT[rXj́Cȉ
̋@\܂D
Edlɂĕ̗vbZ[WꂼSOAP BodyblockƂđ}
  ꂽSOAPbZ[W(SOAP Envelope)NCAg󂯎(P)
  ƁCꂼvbZ[WƂEnvelope𕪊(Q)Cw肳
  ꂽeURL(endpoint)ɑM܂D
EgUNVT[rXɑΉeT[rXCdlɂĕ
  bZ[W󂯎ƁCeT[rX̏̐EsɉāC
  COMMITvCROLLBACKvđ܂D
EeT[rX̃X|XbZ[WƁCŏIIȏʁiCOMMIT܂
  ROLLBACKjNCAgɕԑ܂D
EOpenSOAPT[oƘAg邱ƂŁCNCAg͔񓯊IɍŏIbZ[
  W󂯎邱Ƃo܂D

gUNVT[rX𗘗p邽߂ɂ́CNCAgƁCgUN
VT[rXڑeT[rXgUNVT[rXɑΉ
ĂKv܂D


QDNCAgdliNGXgbZ[Wj
NCAg͈ȉ̎dlɏ]NGXgbZ[W𑗐MłKv
܂D

2.1.gUNVLqubN
NGXgbZ[WBodyi<SOAP-ENV:Body>jɊ܂܂ŏBodyblock
<TransactionControl>łKv܂(P)D<TransactionControl>
ubNnamespace"http://services.opensoap.jp/transaction/"ł
Ƃ]܂łD
<TransactionControl>ubNɂ́CgUNV̑ΏۂƂȂT[
rX̐Cqvf<endpoint>Cv鏈̏ԂɕłKv
܂D
<endpoint>vfɂ͊eT[rXgUNVƂĎs\SOAP
bZ[W̑MURLLq܂D܂CevƂɌŗL̔Cӂ
l"transactionRequestID"t܂D
̑CgUNVɊւ鏈ݒ͂̃ubNɋLq
Diłł̎<endpoint>vf̂݁j

2.2.gUNVwb_ubN
eT[rXɑMׂbZ[W̃wb_݂ꍇCgU
NVwb_ubN<TransactionHeaderBlock>̗vfƂċLq܂
(P)D̕ɋLqꂽvf́CeT[rXɑMSOAPbZ[
W̃wb_ubNi<SOAP-ENV:Header>̒̃ubNjƂđ}
܂D<TransactionHeaderBlock>ubNnamespace
"http://services.opensoap.jp/transaction/"ł邱Ƃ]܂łD

e<TransactionHeaderBlock>ubNɂ́C<TransactionControl>ubN
<endpoint>vf̑Ή鑮l"transactionRequestID"tKv
܂D<TransactionHeaderBlock>ubN͑QBodyblockȍ~ł΁C
ǂ̏Ԃő}ĂĂ܂܂D

2.3.gUNV{fBubN
eT[rXɑMׂbZ[W̃{fB́CgUNV{fB
ubN<TransactionBodyBlock>̗vfƂċLq܂(P)D̕
Lqꂽvf́CeT[rXɑMSOAPbZ[W̃{fBubN
i<SOAP-ENV:Body>̒̃ubNjƂđ}܂D
<TransactionBodyBlock>ubNnamespace
"http://services.opensoap.jp/transaction/"ł邱Ƃ]܂łD

e<TransactionBodyBlock>ubNɂ́C<TransactionControl>ubN
<endpoint>vf̑Ή鑮l"transactionRequestID"tKv
܂D<TransactionBodyBlock>ubNC<TransactionHeaderBlock>ub
NlCQBodyblockȍ~ł΁Cǂ̏Ԃő}ĂĂ܂
D


P. OpenSOAP Transaction Request Envelope
Asɏo̗vCꂪ󂯓ꂽBsɓz̓v
gUNV̗D

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
	<t:TransactionControl xmlns:t="http://services.opensoap.jp/transaction/">
		<endpoint transactionRequestID="1">http://opensoap.jp/cgi-bin/soapInterface.cgi</endpoint>
		<endpoint transactionRequestID="2">http://opensoap.jp/cgi-bin/b_bank_transfer.cgi</endpoint>
	</t:TransactionControl>
	<t:TransactionBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="1">
		<p:PaymentRequest xmlns:p="http://services.opensoap.jp/a_bank_transfer/">
			<account>1338675</account>
			<amount>$5000</amount>
			<to>b_bank:1252412</to>
		</p:PaymentRequest>
	</t:TransactionBodyBlock>
	<t:TransactionHeaderBlock transactionRequestID="2" xmlns:tp="http://services.opensoap.jp/transaction/">
		<e:encrypt xmlns:e="http://security.opensoap.jp/1.0/" api="OpenSOAP">true</e:encrypt>
	</t:TransactionHeaderBlock>
	<t:TransactionBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="2">
		<d:DepositRequest xmlns:d="http://services.opensoap.jp/b_bank_transfer/">
			<account>1252412</account>
			<amount>$5000</amount>
			<from>a_bank:1338675<from>
		</d:DepositRequest>
	</t:TransactionBodyBlock>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


RDgUNVΉT[rXdl
OpenSOAP Transaction ServiceɑΉT[rX́CNCAg
SOAPbZ[W̎dliwb_ubNC{fBubN̓ejƃT[r
X̋@\NCAgɌJƋɁCgUNVT[rXƂ̐
ɂāCȉ̎dlɏ]Kv܂D

3.1.vɑ΂ԐM
gUNVT[rXɂĕꂽeEnvelope(Q)́CΉ
邻ꂼendpointɑM܂DeT[rX́CEnvelopeɂ
ėvꂽsC̏RollbackłԂŕۑCX
|XbZ[W(R)gUNVT[rXɕԐM܂DX|
XbZ[W̎dl͊eT[rXƓƎł܂܂񂪁C1{fBub
N̒ɂ͏̌ʂLqqvf<TransactionResult>܂ޕKv
܂D
<TransactionResult>ɂ́C̃T[rXł̏̐ʒm"SUCCESS"
Lq܂DȊO̕C̓T[rX<SOAP-ENV:Fault>
ԐMꂽꍇ́C̃T[rXł͎̏sC͋ۂꂽ
Ƃ݂Ȃ܂D
܂C<TransactionResult>ɂ́CT[rXŌŗL̎ID𑮐l
"transactionID"Ƃĕt邱Ƃł܂D"transactionID"g
ƁC̃XebvŃgUNVT[rXCOMMIT܂ROLLBACK̗v
ȂꂽɁCT[rXŐƂ邱Ƃł܂D

3.2.COMMIT܂ROLLBACKv
gUNVT[rX̓T[rX琬i"SUCCESS"jԐMƁC
<TransactionControl>ubNɋLqꂽԂɏ]Ď̃T[rXւ̃
NGXgbZ[W𑗐M܂D
SẴT[rXSUCCESSԐMꂽꍇCgUNVT[rX
ĂёSĂendpointɑ΂đΉ"transactionID"lt
COMMITvbZ[W(S)𑗐MĈȀ̎s肵܂D
SẴT[rXSUCCESSԐMOɁCr̃T[rX玸sb
Z[WԐMƁC̑O܂łSUCCESSԐMꂽT[rXQɑ΂
"transactionID"ltROLLBACKvbZ[W𑗐M܂D

3.3.̊
COMMITv󂯎T[rX͗vꂽsďIC
ROLLBACKv󂯎T[rX͑Ή鏈܂DɁC
gUNVT[rXɂꂼ̏|SOAPbZ[W
(T)ԐM܂D


Q(A)DAs֑MSOAP Envelope

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<p:PaymentRequest xmlns:p="http://services.opensoap.jp/a_bank_transfer/">
	<account>1338675</account>
	<amount>$5000</amount>
	<to>b_bank:1252412</to>
</p:PaymentRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Q(B)DBs֑MSOAP Envelope

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<d:DepositRequest xmlns:d="http://services.opensoap.jp/b_bank_transfer/">
	<account>1252412</account>
	<amount>$5000</amount>
	<from>a_bank:1338675</from>
</d:DepositRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

RDAs̃X|X̗

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<p:PaymentResponse xmlns:p="http://services.opensoap.jp/samples/a_bank_transfer/">
	<t:TransactionResult xmlns:t="http://services.opensoap.jp/transaction/" transactionID="abank13386751012192663">
	SUCCESS
	</t:TransactionResult>
	<p:Comment>1338675 sent $5000 to b_bank:1252412</p:Comment>
</p:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


SDgUNVT[rXAsւCOMMITv

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
	<t:TransactionAction xmlns:t="http://services.opensoap.jp/transaction/" transactionID="abank13386751012192663">
	COMMIT
	</t:TransactionAction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


TDAsCOMMITvɑ΂ԐM

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
	<t:TransactionActionResponse xmlns:t="http://services.opensoap.jp/transaction/" transactionID="abank13386751012192663">
	COMMITED
	</t:TransactionActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SDNCAgւ̕ԐM
gUNVT[rX́CȀ̌ʂNGXgbZ[WƓ
lɂЂƂEnvelopeɌ(UjCNCAgɕԐM܂DSOAPb
Z[W̍ŏ̃{fBubN<TransactionResponse>ubNɂ́Cg
UNV̍ŏIʂCCOMMIT܂ROLLBACKƂċLq܂DQ
ȍ~̃{fBubŃCeT[rXԐMꂽX|XbZ[W
wb_ubN<TransactionHeaderBlock>ubNɁC{fBubN
<TransactionBodyBlock>ubNɁCCOMMITROLLBACK𑗐M
ۂ̃X|XbZ[W̃{fBubN
<TransactionActionResponseBodyBlock>ɁCꂼꃊNGXgbZ[W
tl"transactionRequestID"Ɠltđ}
D


UDNCAgɕԐMgUNV

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
	<t:TransactionResponse xmlns:t="http://services.opensoap.jp/transaction/">
	COMMIT
	</t:TransactionResponse>
	<t:TransactionBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="1">
		<p:PaymentResponse xmlns:p="http://services.opensoap.jp/samples/a_bank_transfer/">
			<t:TransactionResult transactionID="pt13386751012192663">
				SUCCESS
			</t:TransactionResult>
			<:Comment xmlns:="">
				1338675 sent $5000 to b_bank:1252412
			</:Comment>
		</p:PaymentResponse>
	</t:TransactionBodyBlock>
	<t:TransactionActionResponseBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="1">
		<t:TransactionActionResponse transactionID="pt13386751012192663">
			COMMITED
		</t:TransactionActionResponse>
	</t:TransactionActionResponseBodyBlock>
	<t:TransactionBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="2">
		<p:DepositResponse xmlns:p="http://services.opensoap.jp/samples/a_bank_transfer/">
			<t:TransactionResult transactionID="dt12524121012226863">
				SUCCESS
			</t:TransactionResult>
			<p:Comment>
				1252412 received $5000 from a_bank:1338675
			</p:Comment>
		</p:DepositResponse>
	</t:TransactionBodyBlock>
	<t:TransactionActionResponseBodyBlock xmlns:t="http://services.opensoap.jp/transaction/" transactionRequestID="2">
		<t:TransactionActionResponse transactionID="dt12524121012226863">
			COMMITED
		</t:TransactionActionResponse>
	</t:TransactionActionResponseBodyBlock>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
