URL生成:
$parameter = array(
‘service‘ => ‘create_forex_trade‘,
‘partner‘ => ‘2088101122136241‘,
‘_input_charset‘ => strtolower(‘utf-8‘),
‘notify_url‘ => ‘http://wsy.zy62.com/alipay/notify_url.php‘,
‘return_url‘ => ‘http://wsy.zy62.com/alipay/return_url.php‘,
/* 业务参数 */
‘subject‘ => ‘付款余额‘,
‘out_trade_no‘ => sprintf("%s-%s",$client_id,date("YmdHis")),
‘total_fee‘ => ‘0.01‘,
‘currency‘ => "USD"
);
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). ‘760bdzec6y9goq7ctyx96ezkz78287de‘;
$button = ‘
echo $button;
验证异步回调
$json=‘{"notify_id":"8cc4f9dca6ac0bdcc944b0cd51ce41292l","notify_type":"trade_status_sync","sign":"6aa07c5e5119eebc22d5fd9af78e39e1","trade_no":"2015082500001000100080033805","total_fee":"0.01","out_trade_no":"20150825092330","currency":"USD","notify_time":"2015-08-25 09:25:03","trade_status":"TRADE_FINISHED","sign_type":"MD5"}‘;
$_POST=json_decode($json,true);
if (!empty($_POST))
{
foreach($_POST as $key => $data)
{
$_GET[$key] = $data;
}
}
/* 检查数字签名是否正确 */
ksort($_GET);
reset($_GET);
$sign = ‘‘;
foreach ($_GET AS $key=>$val)
{
if ($key != ‘sign‘ && $key != ‘sign_type‘ && $key != ‘code‘)
{
$sign .= "$key=$val&";
}
}
$sign = substr($sign, 0, -1) . ‘760bdzec6y9goq7ctyx96ezkz78287de‘;
if (md5($sign) != $_GET[‘sign‘])
{
return false;
}else{
return true;
}
原文:http://my.oschina.net/rain21/blog/496780