提交给银行:
<form action="https://pay3.chinabank.com.cn/paygate" method="post">
<input name=v_mid value=v_mid> <--商户编号,也可以说成是收款人-->
<input name=v_oid > <--订单号-->
<input name=v_amount > <--用户要付金额-->
<input name=v_moneytype > <-- 币种-->
<input name=v_url > <-- 银行提交给我们结果的页面地址-->
<input name=v_md5info value="md5str"> <-- 有关付款信息的MD5加密信息md5str是一个变量md5str为金额,币种,订单号,商户号,CALLBACKURL,密匙 这个顺序不能乱,其中密匙是和收款帐号有关的-->
<input name=v_rcvname > <-- 收货人名字-->
<input name=v_rcvaddr > <-- 收货人地址-->
<input name=v_rcvtel > <-- 收货人电话-->
<input name=v_rcvpost > <-- 收货人邮编-->
<input name=v_rcvemail > <-- 收货人EMAIL-->
</form>
接受银行提交过来的结果:
key=""; //用于进行MD5加密的一串密匙,。
form.v_oid//订单号
form.v_pmode//支付方式中文说明,如"**信用卡"
form.v_pstatus//支付结果,20支付完成;30支付失败.
form.v_pstring//对支付结果的说明.成功时(v_pstatus=20),失败时(v_pstatus=30)
form.v_amount//订单实际支付金额
form.v_moneytype//币种
form.v_md5str//MD5校验码,其实是一串由商家传过去的一串经过MD5加密过的有关订单金额等信息字符串
<!---下面的这个顺序不能变.--->
<cfset md5str=ucase(hash(form.v_oid&form.v_pstatus&form.v_amount&form.v_moneytype&key))>
<cfif md5str eq form.v_md5str>
<cfif form.v_pstatus eq 30>
交易失败
<cfelseif form.v_pstatus eq 20>
这时表示用户已经成功付款了, 然后再查询数据库检查此订单的付款金额是否有错?接下来要判断此订单是否已经有交易记录了,如果有说明这次是银行重复提交的.如果没有交易记录则可以生成交易记录.
成功生成交易记录后,交易完成.
</cfif>
<cfelse>
交易失败
</cfif>