微信支付回调API php,微信支付回调页面源码

## 微信支付回调页面源码

~~~

public function wxPayCallBackUrl(){

// 获取返回的post数据包

$post_str = $GLOBALS["HTTP_RAW_POST_DATA"] ;

if(!empty($post_str)){

libxml_disable_entity_loader(true);

$post_obj = (array)simplexml_load_string($post_str, 'SimpleXMLElement', LIBXML_NOCDATA);

if($post_obj['result_code']=='SUCCESS') {

$order_no = $post_obj['out_trade_no'];

$open_id=$post_obj['openid'];

$order_wx = Loader::model('base/OrdersWxpay')->where(['order_no' => $order_no,'payer_openid'=>$open_id,])->find();

if($order_wx){

// Db::table('my_errs')->insert(['content'=>json_encode($order_wx)]);

//更新订单数据

$this->updateOrderIsPay($order_no);

$order_amount=(int)$post_obj['total_fee']/100;

//发送客服消息

$this->sendPayOkMessage($order_no,$order_amount,$open_id);

//保存支付记录

$save_data=[

'order_no'=> $order_no,

'pay_type'=> 'WxPay',

'openid'=>$open_id,

'total_fee' => $post_obj['total_fee'],

'trade_type'=> $post_obj['trade_type'] , //JSAPI、NATIVE、APP

'bank_type'=>$post_obj['bank_type'] ,

'result_code'=>$post_obj['result_code'],

'transaction_id'=>$post_obj['transaction_id'],

'time_end'=>$post_obj['time_end'],

];

// Db::table('my_errs')->insert(['content'=>json_encode($save_data)]);

Loader::model('base/OrdersStatus')->editData($save_data);

$this->echoCallBack(true);

}else{

$this->echoCallBack();

}

}else{

$this->echoCallBack();

}

}else{

$this->echoCallBack();

}

}

protected function updateOrderIsPay($order_no,$pay_type='WxPay'){

$update_data=[

'is_pay'=>1,

'order_state'=>1,

'pay_time'=>time(),

'pay_type'=>$pay_type,

];

Loader::model('base/Orders')->save($update_data,['order_no'=>$order_no]);

$update_data=[

'is_pay'=>1,

];

Loader::model('base/OrdersAccess')->save($update_data,['order_no'=>$order_no]);

}

protected function sendPayOkMessage($order_no,$order_amount,$open_id){

$add_message = [

'title' => '订单支付成功通知',

'template_id' => 'NlBWOshEjRxoRtpodi-_Tt2XVfe5TNh-uAbDXkkJ4vw',

'url' =>$this->request->domain().'/index/WC_html_1/mainContainer.html#order/order_orderInfo.html||orderId='.$order_no,

'data' => [

'first' => ['value' => '您好,您的订单已支付成功,我们会尽快为您发货(callBack)',],

'keyword1' => ['value' => $order_no,],

'keyword2' => ['value' =>$order_amount.'元',],

'remark' => ['value' => '我们已经收到你的货款请耐心等待收货。',],

],

];

$reg = controller('base/WxApi')->sendTemplateMessage($add_message,$open_id);

return $reg ? true : false ;

}

protected function echoCallBack($status = false){

if (!$status){

$result = "

";

}else{

$result = "

";

}

echo $result;

}

~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值