• 微信App支付

    1.先来一张微信的流程图

    chapter8_3_1.png

    2.整体逻辑

    (2.1)根据微信开发文档的统一下单的参数写在接口里面,return_code 和result_code都为SUCCESS的时候把对应的参数json格式返回页面给安卓,然后安卓通过SDK调起支付,给php返回支付结果状态值,php在异步地址里面写逻辑

    3.写接口这只有给安卓返回的数据 

    SK%A@%J@2DX@@ZRAEN4SV]L.png

    image.png

    4.数据json返回页面安卓,安卓返回支付状态值

    image.png

    5.回调 案例(不是真实代码

    image.png



                /* 微信 参数  */

                $mch_id = '商户id';

                $data['appid']='appid';

                $data['mch_id']='商户id';

                $data['nonce_str']=createNonceStr();//签名获取字符串

                $data['body']='购买商品';

                $data['out_trade_no']=$orderinfo['ordersn'].'_'.date('his');

                $data['total_fee']=($orderinfo['price']*100);

                $data['spbill_create_ip']=getip();

                $data['time_start']=date("YmdHis");

                $data['time_expire']=(date("YmdHis", time() + 600));

                $data['notify_url']='异步';  

                $data['trade_type']='APP';

                $data['sign']=tuikuan_hb_MakeSign($data,'密钥'); //生成签名    密钥

                $xml=tuikuan_hb_arraytoxml($data);//转换xml格式

                $url='https://api.mch.weixin.qq.com/pay/unifiedorder'; //接口连接

                $res=tuikuan_hb_curl($xml,$url);

                $return=tuikuan_hb_xmltoarray($res);

                if($return['return_code'] == 'SUCCESS' && $return['result_code'] == 'SUCCESS'){

                    $time=time();

                    $msg['appid']=$data['appid'];//appid

                    $msg['partnerid']=$data['mch_id'];//商户号

                    $msg['prepayid']=$return['prepay_id'];//微信返回的支付交易会话ID

                    $msg['noncestr']= $data['nonce_str'];

                    //$msg['signType']='MD5';

                    $msg['timestamp']=$time;

                    $msg['package']='Sign=WXPay';

                    $msg['sign']=$this->tuikuan_hb_MakeSign($msg,'密钥');

                    $msg['timeStamp']=$time;

                }