账户中心 退出系统
开发文档 资讯·分享 技术交流 会员登录
phpGrace GSCMS 公众号系统
APP 支付

APP 支付相关配置

<?php
// 微信开发配置
return array(
    //...
    /* -------- 微信支付 [ APP 支付  ] 需要的配置 -------- */
    'APP'         => array(
        // 微信开放平台审核通过的应用 APPID
        'appid'   => '',
        // 微信支付商户ID
        'mchid'   => '1584666521',
        // 微信支付对应的KEY
        'key'     => 'mpxtarou6s8apolu8winx66nhy8m8918'
    ),
    //....

APP 支付相关条件

1 微信开发平台开发者认证 > 创建移动应用审核通过 > 设置应用签名及包名;
2 微信支付账户开通app支付产品 > 绑定商户到开放平台;

php端代码

<?php
class wxPayController extends grace{

    public function index(){
        /*
         * 微信支付后端示例代码
         * 模拟一个1元的支付信息,真实环境可以利用订单数据来产生下面的order数据
         */
        //模拟一个简单的订单信息
        $order = array(
            'id'         => mt_rand(111111111,999999999),     // 订单号码
            'price'      => 2           // 订单价格
        );
        //使用统一下单接口返回微信支付前端必须的信息
        $orderWxPay                  = array();
        $orderWxPay['body']         = '支付描述'; //支付描述
        //商户系统内部订单号,要求32个字符内
        $orderWxPay['out_trade_no'] = 'APP-'.$order['id'];
        //总价,需要 * 100
        $orderWxPay['total_fee']    = $order['price'];
        //异步接收微信支付结果通知的回调地址
        $orderWxPay['notify_url']   = 'https://域名/wxPay/payback/';
        //实例化微信支付对象
        $graceWeChat    = new \phpGrace\tools\graceWeChat();
        $graceWeChatPay = new \phpGrace\tools\graceWeChat\pay($graceWeChat);
        //生成订单
        $res = $graceWeChatPay->createOrder($orderWxPay, 'APP');
        //p($res);
        // 请根据app端返回值要求整理 $res 数组
        // 然后输出结果给app前端
        exit(json_encode($res, JSON_UNESCAPED_UNICODE));
    }

    // 支付成功后微信支付服务器异步通知接口
    // 根据通知结果处理订单状态等后续工作
    public function payback(){
        $graceWeChat    = new \phpGrace\tools\graceWeChat();
        $graceWeChatPay = new \phpGrace\tools\graceWeChat\pay($graceWeChat);
        $res = $graceWeChatPay->payBack('APP');
        // 将 res 数组与数据库内订单信息进行比对,比对后进行后续操作,如:更新订单、发送通知......
        file_put_contents('pay.txt', json_encode($res, JSON_UNESCAPED_UNICODE));
        echo '<xml> 
        <return_code><![CDATA[SUCCESS]]></return_code>
        <return_msg><![CDATA[OK]]></return_msg>
      </xml>';
    }
}