zoukankan      html  css  js  c++  java
  • 微擎小程序支付功能+退款功能

    1,要使用微擎特定的小程序框架

    https://gitee.com/we7coreteam/wxapp

    2,必须正确的配置siteinfo

    https://www.kancloud.cn/qq188872170/xcx/673488

    var siteinfo = {
    "m": 'yhjd_fhjs',
    "uniacid": "2",
    "acid": "2",
    "multiid": "0",
    "version": "1.01",
    "siteroot": "https://02.zcwlkj.cn/app/index.php",
    'method_design': '3'
    };
    module.exports = siteinfo;
     
    3,发起支付的页面,必须有m参数
    appInfo.util.request({
    'url': 'entry/wxapp/pay', //调用wxapp.php中的doPagePay方法获取支付参数
    data: {
    orderid: params.ordertid,
    fee: params.fee,
    openid: appInfo.globalData.openid,
    m: appInfo.siteInfo.m
    },
    'cachetime': '0',
    success(res) {
    console.log(res);
    }
    });
    4,PHP端生成支付参数——————wxapp.php文件就是专门用来写这个小程序支付逻辑的
    class We7WxappDemoModuleWxapp extends WeModuleWxapp {
        public function doPagePay() {
            global $_GPC, $_W;
            //获取订单号,保证在业务模块中唯一即可
            $orderid = intval($_GPC['orderid']);
            //构造支付参数
            $order = array(
                'tid' => $orderid,
                'user' => $_W['openid'], //用户OPENID
                'fee' => floatval($fee), //金额
                'title' => '小程序支付示例',
            );
            //生成支付参数,返回给小程序端
            $pay_params = $this->pay($order);
            if (is_error($pay_params)) {
                return $this->result(1, '支付失败,请重试');
            }
            return $this->result(0, '', $pay_params);
        }
    }
    小程序端发起支付
    app.util.request({
        'url': 'entry/wxapp/pay', //调用wxapp.php中的doPagePay方法获取支付参数
        data: {
            orderid: options.orderid,
        },
        'cachetime': '0',
        success(res) {
            if (res.data && res.data.data && !res.data.errno) {
                //发起支付
                wx.requestPayment({
                    'timeStamp': res.data.data.timeStamp,
                    'nonceStr': res.data.data.nonceStr,
                    'package': res.data.data.package,
                    'signType': 'MD5',
                    'paySign': res.data.data.paySign,
                    'success': function (res) {
                        //执行支付成功提示
                    },
                    'fail': function (res) {
                        backApp()
                    }
                })
            }
        },
        fail(res) {
            wx.showModal({
                title: '系统提示',
                content: res.data.message ? res.data.message : '错误',
                showCancel: false,
                success: function (res) {
                    if (res.confirm) {
                        backApp()
                    }
                }
            })
        }
    })
    验证支付结果
    和模块一样,验证代码写在 payResult() 函数中即可。
     
     
    微擎退款功能——
    1,微擎的支付订单存储在ims_core_paylog中,
    2,退款订单存储在ims_core_refundlog中
    3,支付和退款,都必须配置参数,退款要配置文件
    证书:
    使用微信退款功能需要上传双向证书。
    证书下载方式:
    微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载。
    我们仅用到apiclient_cert.pem 和 apiclient_key.pem这两个证书
     
    1. //首先load模块函数
    2. load()->model('refund');
    3. //创建退款订单
    4. //$tid 模块内订单id
    5. //$module 需要退款的模块
    6. //$fee 退款金额
    7. //$reason 退款原因
    8. //成功返回退款单id,失败返回error结构错误
    9. $refund_id = refund_create_order($tid, $module, $fee, $reason);
    10. if (is_error($refund_id)) {
    11. itoast($refund_id['message'], referer(), 'error');
    12. }
    13. //发起退款
    14. $refund_result = refund($refund_id);
    15. if (is_error($refund_result)) {
    16. itoast($refund_result['message'], referer(), 'error');
    17. } else {
    18. pdo_update('core_refundlog', array('status' => 1), array('id' => $refund_id));
    19. //XXX(这里继续写自己的其他逻辑)
    20. itoast('退款成功', referer(), 'info');
    21. }
  • 相关阅读:
    构架设计:负载均衡层设计方案(1)——负载场景和解决方式
    ActiveMQ5.14.1+Zookeeper3.4.9高可用伪分布式部署
    TCP同步与异步,长连接与短连接【转载】
    各种加密解密算法的比较和适用场合(转)
    ElasticSearch安装部署,基本配置(Ubuntu14.04)
    OpenResty--mysql,redis 项目中的应用
    mysql慢日志
    MongoDB之Replica Set(复制集复制)
    pycharm的一些设置和快捷键
    jmap
  • 原文地址:https://www.cnblogs.com/bluestear/p/11247523.html
Copyright © 2011-2022 走看看