下面是最近Magento和Osc使用首信易支付方式 做支付接口包里的提交表单:
<?php
$v_mid = "250"; // 商户号 :测试商务号250
$v_oid = date('Ymd') .'-' . $v_mid .'-' . date('His'); // 订单编号:订单生成日期(yyyymmdd)-商户编号-商户流水号
$v_rcvname = $v_mid; // 收货人姓名
$v_rcvaddr = $v_mid; // 收货人地址
$v_rcvtel = $v_mid; // 收货人电话
$v_rcvpost = $v_mid; // 收货人邮政编码
$v_amount = '89.99'; // 订单总金额:不可为空值,小数点后保留两位
$v_ymd = date('Ymd'); // 订单产生日期:格式为yyyymmdd
$v_orderstatus = "1"; // 配货状态:0为未配齐,1为已配齐;一般商户该参数无实际意义,建议统一配置为1的状态。
$v_ordername = $v_mid; // 订货人姓名,总长不超过64个字符
$v_moneytype = '1'; // 支付币种:0为人民币,1为美元,2为欧元,3为英镑,4为日元,5为韩元
$v_url = "http://demo.cn/easypay/recive.php"; // 返回商户页面地址
$MD5_Key = "testtest"; // 商户密钥 :测试商务号密钥testtest
$source = $v_moneytype.$v_ymd.$v_amount.$v_rcvname.$v_oid.$v_mid.$v_url; // 七个参数的合并
$v_md5info = hmac_md5 ( $MD5_Key, $source ); // 订单数字指纹 :用hmac加密
$v_shipstreet = 'v_shipstreet'; // 送货街道地址:为送货地址街道部分,总长不超过100个字符。
$v_shipcity = 'v_shipcity'; // 送货城市:为送货地址城市部分,总长不超过50个字符。
$v_shipstate = 'AL'; //* 送货省/州:如送货国家为美国或加拿大,应为两位字母代码,代码规范参见附件《州省 代码表 》
$v_shippost = '12345'; // 送货邮编:为送货地址邮政编码部分,总长不超过20个字符。
$v_shipcountry = '840'; //* 为送货国家三位数字代码,代码规范参见附件《国 家代码表 》
$v_shipphone = '13808080880'; // 送货电话:为送货联系电话,总长不超过50个字符。
$v_shipemail = 'chen@sjolzy.cn'; // 送货邮箱:为送货联系Email,总长不超过50个字符。
$paypal_content =
'<form action="http://pay.beijing.com.cn/prs/e_user_payment.checkit" method="post" name="E_FORM" id="E_FORM">
<input type="hidden" name="v_mid" value="'.$v_mid.'" />
<input type="hidden" name="v_oid" value="'.$v_oid.'" />
<input type="hidden" name="v_rcvname" value="'.$v_rcvname.'" />
<input type="hidden" name="v_rcvaddr" value="'.$v_rcvaddr.'" />
<input type="hidden" name="v_rcvtel" value="'.$v_rcvtel.'" />
<input type="hidden" name="v_rcvpost" value="'.$v_rcvpost.'" />
<input type="hidden" name="v_amount" value="'.$v_amount.'" />
<input type="hidden" name="v_ymd" value="'.$v_ymd.'" />
<input type="hidden" name="v_orderstatus" value="'.$v_orderstatus.'" />
<input type="hidden" name="v_ordername" value="'.$v_ordername.'" />
<input type="hidden" name="v_moneytype" value="'.$v_moneytype.'" />
<input type="hidden" name="v_url" value="'.$v_url.'" />
<input type="hidden" name="v_md5info" value="'.$v_md5info.'" />
<input type="hidden" name="v_shipstreet" value="'.$v_shipstreet.'" />
<input type="hidden" name="v_shipcity" value="'.$v_shipcity.'" />
<input type="hidden" name="v_shipstate" value="'.$v_shipstate.'" />
<input type="hidden" name="v_shippost" value="'.$v_shippost.'" />
<input type="hidden" name="v_shipcountry" value="'.$v_shipcountry.'" />
<input type="hidden" name="v_shipphone" value="'.$v_shipphone.'" />
<input type="hidden" name="v_shipemail" value="'.$v_shipemail.'" />
<input type="submit" value="submit" />
</form>';
echo $paypal_content;
?>
用到的加密兼容性函数:(在有的php环境中可能没支持hmac函数)
<?php
function hmac_md5($key, $data)
{
if (extension_loaded('mhash'))
{
return bin2hex(mhash(MHASH_MD5, $data, $key));
}
$b = 64;
if (strlen($key) > $b)
{
$key = pack('H*', md5($key));
}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad;
$k_opad = $key ^ $opad;
return md5($k_opad . pack('H*', md5($k_ipad . $data)));
}
?>
对于要开发首信易支付接口包的使用,Magento和Osc都可以直接根据原有的Paypal支付接口程序包的目录,稍微整合修改代码就可用。
Demo网址:http://sjolzy.cn/php/PayEase/demo.php
首信易参考文档:
首信易支付(v4.3)接口说明_CYBS外卡20101103.doc
承接Magento首信易支付接口开发和首信易中转站建设
作者: Sjolzy
--EOF--