哪位大神大哥指点一下关于微信支付后的回调处理啊:
1、setNotify_url,这里的url应该怎么设?
我采用的是腾讯云下载的DEMO,也就是CI框架,现在将回调的notify.php文件放在"控制器controllers“下面,具体路径server/application/controllers
注:我现在将notify.php文件重命名为Notify_store.php了
我现在不知道支付成功后的回调地址怎么写:
是 : https://域名/server/application/controllers/Notify_store.php
还是 : https://域名/weapp/notify_store.php(在CI框架设置的路由,小程序前端调用服务端的url地址时用到的)
还是其他的?求助大神,帮忙!!!!
2、关于重写回调处理函数
以下代码都是Notify_store.php文件中的部分代码:
class PayNotifyCallBack extends WxPayNotify
{
//查询订单
public function Queryorder($transaction_id)
{
$input = new WxPayOrderQuery();
$input->SetTransaction_id($transaction_id);
$result = WxPayApi::orderQuery($input);
Log::DEBUG(“query:” . json_encode($result));
if(array_key_exists(“return_code”, $result)
&& array_key_exists(“result_code”, $result)
&& $result[“return_code”] == “SUCCESS”
&& $result[“result_code”] == “SUCCESS”)
{
return true;
}
return false;
}
public function NotifyProcess($data, &$msg){
//"$data" 是NotifyCallBack函数传进来的含有支付信息的参数
Log::DEBUG(“call back:” . json_encode($data));
$notfiyOutput = array();
// 下面这句判断支付参数中是否含有微信订单号transaction_id
if(!array_key_exists(“transaction_id”, $data)){
$msg = “输入参数不正确”;
return false;
}
//查询订单,判断订单真实性,二重判断
if(!$this->Queryorder($data[“transaction_id”])){
$msg = “订单查询失败”;
return false;
}
// “这里返回真,证明支付成功了”
// “我们也可以直接在这里做支付成功后的操作”
if($data[‘return_code’] ==‘SUCCESS’ && $data[‘result_code’] == ‘SUCCESS’){
//自己的业务逻辑(正常情况下,向数据库中存入$data数据)
$test_store_a_order_info = Notify_store::test_order_info($data);
}
// 这样写有什么问题吗?
return true;
}
}
class Notify_store extends CI_Controller
{
public function test_order_info($data)
{
//组装$order_info数组
$order_info = array(
‘appid’ => $data[‘appid’],
‘mch_id’ => $data[‘mch_id’],
‘nonce_str’ => $data[‘nonce_str’],
‘sign’ => $data[‘sign’],
‘result_code’ => $data[‘result_code’],
‘openid’ => $data[‘openid’],
‘trade_type’ => $data[‘trade_type’],
‘bank_type’ => $data[‘bank_type’],
‘total_fee’ => $data[‘total_fee’],
‘cash_fee’ => $data[‘cash_fee’],
‘transaction_id’ => $data[‘transaction_id’],
‘out_trade_no’ =>$data[‘out_trade_no’],
‘time_end’ => $data[‘time_end’],
);
//加载模型
$this->load->model(‘store_a_order_info_model’);
//正常情况下,向数据库中存入的数据。
$result_store_a_order_info = $this->store_a_order_info_model->store_a_order_info($order_info);
}
}
我眼泪都急出来了!