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. }
  • 相关阅读:
    把影响集中到一个点
    How to avoid Over-fitting using Regularization?
    适定性问题
    Numerical Differentiation 数值微分
    What Every Computer Scientist Should Know About Floating-Point Arithmetic
    Generally a good method to avoid this is to randomly shuffle the data prior to each epoch of training.
    What is the difference between iterations and epochs in Convolution neural networks?
    Every norm is a convex function
    Moore-Penrose Matrix Inverse 摩尔-彭若斯广义逆 埃尔米特矩阵 Hermitian matrix
    perl 类里的函数调用其他类的函数
  • 原文地址:https://www.cnblogs.com/bluestear/p/11247523.html
Copyright © 2011-2022 走看看