PHP微信APP支付,下单,处理异步回调——————微信支付这个坑

本文介绍了如何使用PHP进行微信APP支付的下单流程,包括将数据转化为XML,通过CURL发送请求,以及处理微信的异步回调通知。在回调处理中,验证签名并更新订单状态。
摘要由CSDN通过智能技术生成

1.下单

其中数组转换xml格式,curl发送请求,xml格式转换成数组可单独封装成函数。

    public function index() {

        $order = [

            'appid'=>'123456',

            'mch_id'=>'56789',

            'nonce_str'=>uniqid(md5(time())),

            'body'=>'测试商品',

            'out_trade_no'=>87654321,//商户唯一订单号,可包含字母序

            'total_fee'=>100,//订单金额,单位/分

            'spbill_create_ip'=>'123.12.12.123',//产生订单号的服务器IP

            'notify_url'=>'http://www.yoursite.com/wxpay',//接受微信异步通知地址

            'trade_type'=>'APP'

        ];

        //用户http_build_query()将数据转成URL键值对形式

        $sign = http_build_query($order);

        //$sign = "appid=123456&mch_id=56789&nonce_str=c6079b98e6aeb4a98f687800c887f6cc58df95d72cd69&body=%E6%B5%8B%E8%AF%95%E5%95%86%E5%93%81&out_trade_no=87654321&total_fee=100&spbill_create_ip=123.12.12.123¬ify_url=http%3A%2F%2Fwww.yoursite.com%2Fwxpay&trade_type=APP";

        //MD5处理,默认支持MD5

        $sign = md5($sign);

        //转大写

        $sign = strtoupper($sign);

        $order['sign'] = $sign;

        //转换成一维XML格式

        $xml = '';

        foreach($order as $k=>$v){

            $xml.='<'.$k.'>';

        }

        $xml.='';

        //CURL会话

        $ch = curl_init();

        // 设置curl允许执行的最长秒数

        curl_setopt($ch, CURLOPT_TIMEOUT, 3);

        curl_setopt($ch,CURLOPT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值