Magento或osc使用首信易支付接口的示例表单参数

下面是最近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网址://sjolzy.cn/php/PayEase/demo.php

首信易参考文档:

首信易支付(v4.3)接口说明_CYBS外卡20101103.doc

州省代码表

国家代码表

payEasy首信义帮助文档

承接Magento首信易支付接口开发和首信易中转站建设