微信填写回调url php,php微信支付回调url

某草草2017-06-26 10:51:042楼

你在手机上付完款,看到的支付完成,这只能算进行了第一步。支付完成才会进行回调,就是把支付的交易流水推送给回调的接口。

public function noticeFirst() {

Vendor('WXPAYS.lib.WxPayPubHelper');

$notify = new \Notify_pub();

//存储微信的回调

$xml = $GLOBALS['HTTP_RAW_POST_DATA'];

$notify->saveData($xml);

$arr = $notify->data;

//验证签名,并回应微信。

//对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,

//微信会通过一定的策略(如30分钟共8次)定期重新发起通知,

//尽可能提高通知的成功率,但微信不保证通知最终能成功。

$wxpay_config = array(

'APPID' => '',

'MCHID' => '',

'KEY' => '',

'APPSECRET' => ''

);

if ($notify->checkSign($wxpay_config) === FALSE) {

$notify->setReturnParameter("return_code", "FAIL"); //返回状态码

$notify->setReturnParameter("return_msg", "签名失败"); //返回信息

} else {

$notify->setReturnParameter("return_code", "SUCCESS"); //设置返回码

}

$returnXml = $notify->returnXml();

echo $returnXml;

//==商户根据实际情况设置相应的处理流程,此处仅作举例=======

if ($notify->checkSign($wxpay_config) === TRUE) {

if ($arr["return_code"] == "FAIL") {

} elseif ($arr["result_code"] == "FAIL") {

} else {

$info = M('order')->where(array('order_sn' => $arr['out_trade_no']))->find();

if (!$info) {

exit('订单信息有误');

}

/* 修改订单状态 */

$data['status'] = 1;

$time_end = substr($arr['time_end'], 0, 4) . '-' . substr($arr['time_end'], 4, 2) . '-' . substr($arr['time_end'], 6, 2) . ' ' . substr($arr['time_end'], 8, 2) . ':' . substr($arr['time_end'], 10, 2). ':' . substr($arr['time_end'], 12, 2);

$data['pay_time'] = strtotime($time_end);

M('order')->where(array('order_id' => $info['order_id']))->save($data);

$total_fee=$arr['total_fee'];

/* 添加支付流水 */

$_data['appid'] = $arr['appid'];

$_data['bank_type'] = $arr['bank_type'];

$_data['cash_fee'] = $arr['cash_fee'];

$_data['fee_type'] = $arr['fee_type'];

$_data['is_subscribe'] = $arr['is_subscribe'];

$_data['mch_id'] = $arr['mch_id'];

$_data['openid'] = $arr['openid'];

$_data['out_trade_no'] = $arr['out_trade_no'];

$_data['result_code'] = $arr['result_code'];

$_data['return_code'] = $arr['result_code'];

$_data['total_fee'] = $total_fee;

$_data['trade_type'] = $arr['trade_type'];

$_data['transaction_id'] = $arr['transaction_id'];

$_data['nonce_str'] = $arr['nonce_str'];

$_data['sign'] = $arr['sign'];

$_data['time_end'] = $arr['time_end'];

$pay_flow_id=M('payment_flow')->add($_data);

/* 添加财务流水 */

//订单ID

$_trans_data['order_id']=$info['order_id'];

//会员ID

$_trans_data['user_id']=$info['user_id'];

//交易流水号

$_trans_data['flow_id']=$pay_flow_id;

//交易类型

$_trans_data['trans_type']='1';

//交易渠道

$_trans_data['trans_channel']='1';

$_trans_data['amount']=$total_fee*0.01;

$_trans_data['add_time']=time();

M('trans_flow')->add($_trans_data);

}

//商户自行增加处理流程,

//例如:更新订单状态

//例如:数据库操作

//例如:推送支付完成信息

}

}

微信支付回调url设置是指在接入微信支付功能时,商户需要设置一个url地址,用于接收微信服务器发送的支付结果通知。当用户在微信客户端完成支付后,微信服务器会通过该url向商户服务器发送一个HTTP POST请求,将支付结果通知传递给商户。 商户在设置回调url时,需要注意以下几点: 1. 回调url必须是公网可访问的URL地址,且支持HTTPS协议,以确保支付结果可以正常传递给商户。 2. 回调url需要由商户自行搭建的服务器来接收,并处理微信服务器发送的支付结果通知。商户需要根据微信支付接口文档定义的接口规范来解析和处理通知数据。 3. 商户在回调url上要防范恶意攻击,确保接收到的支付结果通知是来自微信服务器,并对通知进行验证,以防止数据篡改和仿冒攻击。 4. 商户需要保证回调url的稳定性和可靠性,确保能及时响应和处理微信服务器发送的支付结果通知,并且能处理重复通知、处理失败的情况。 5. 商户还可以在回调url中对支付成功的订单做进一步的业务处理,例如更新订单状态、发送确认消息等。 总而言之,微信支付回调url的设置对于商户来说是非常重要的,它是实现支付结果通知和订单处理的关键环节,商户需要根据微信支付接口文档的要求,合理设置和处理回调url,以确保支付流程的正常进行和安全可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值