java支付宝签名错误_支付宝支付错误返回ILLEGAL_SIGN,签名验证错误

用的是ECSHOP商城框架,在本地测试(windows系统)的时候,正常交易。但到了生产环境(Centos系统)后,支付宝就会报ILLEGAL_SIGN(签名验证错误)错误。网上看过一些解决方法,但都没作用。下面是生成支付宝支付代码的代码:

function get_code($order, $payment)

{

if (!defined('EC_CHARSET'))

{

$charset = 'utf-8';

}

else

{

$charset = EC_CHARSET;

}

$real_method = $payment['alipay_pay_method'];

switch ($real_method){

case '0':

$service = 'trade_create_by_buyer';

break;

case '1':

$service = 'create_partner_trade_by_buyer';

break;

case '2':

$service = 'create_direct_pay_by_user';

break;

}

$parameter = array(

'agent' => $payment['alipay_agent'],

'service' => $service,

'partner' => $payment['alipay_partner'],

//'partner' => ALIPAY_ID,

'_input_charset' => $charset,

'notify_url' => return_url(basename(__FILE__, '.php')),

'return_url' => return_url(basename(__FILE__, '.php')),

/* 业务参数 */

'subject' => $order['order_sn'],

'out_trade_no' => $order['order_sn'] . $order['log_id'],

'extra_common_param'=> !empty($order['all_pay'])?$order['all_pay']:0, //判断是不是合并付款 add by ouzhiming

'price' => $order['order_amount'],

'quantity' => 1,

'payment_type' => 1,

/* 物流参数 */

'logistics_type' => 'EXPRESS',

'logistics_fee' => 0,

'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE',

/* 买卖双方信息 */

'seller_email' => $payment['alipay_account']

);

ksort($parameter);

reset($parameter);

$param = '';

$sign = '';

foreach ($parameter AS $key => $val)

{

$param .= "$key=" .urlencode($val). "&";

$sign .= "$key=$val&";

}

$param = substr($param, 0, -1);

$sign = substr($sign, 0, -1).$payment['alipay_key'];

//$sign = substr($sign, 0, -1). ALIPAY_AUTH;

$button = '

return $button;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值