微信退款(一步步教你怎么写代码)
来源:互联网 发布:淘宝优惠券图片怎么做 编辑:程序博客网 时间:2024/05/04 08:50
开始
- 我们到微信公众号下载SDK;
- 现在我们分两个框架
CI
和TP
;(CI框架我们把SDK放到common
下的libraries
下);(TP框架我们把SDK放到根目录extend
下) CI
框架的操作流程
/** * 微信退款流程 */public function refund_pay() { //获取当前订单的ID $order_id = $this->input->get('id', true); //查询当前订单的信息 $order = $this->common_model->get_one('order', array('order_id' => $order_id)); //判断这条订单是否存在,并存日志(如果不想存日志直接给个提示就行) if (empty($order)) { $this->log->save_log('根据订单ID查询不到信息', $log_file = RUN_QUERY_LOG, $level = 'DEBUG'); return FALSE; } //微信退款操作 require_once ROOT_PATH . "/common/libraries/wxpay/lib/WxPay.Api.php"; $input = new WxPayRefund(); $out_trade_no = WxPayConfig::MCHID . date("YmdHis") . mt_rand(10000, 99999); //设置商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔 $input->SetOut_refund_no($out_trade_no); //设置商户系统内部的订单号,transaction_id、out_trade_no二选一 $input->SetTransaction_id($orderArr['out_sn']); //设置订单总金额,单位为分,只能为整数,详见支付金额 $input->SetTotal_fee($orderArr['pay_price'] * 100); //设置退款总金额,订单总金额,单位为分,只能为整数,详见支付金额 $input->SetRefund_fee($orderArr['weixin_pay_price'] * 100); //设置操作员帐号, 默认为商户号 $input->SetOp_user_id(WxPayConfig::MCHID); $data = WxPayApi::refund($input); //退款成功 if ($data['result_code'] == 'SUCCESS') { //更新订单状态 $this->common_model->edit('order', array('return_time' => date('Y-m-d H:i:s', time())), array('order_id' => $order_id)); }
4.TP
框架的操作流程
/** * 支付宝有密退款流程 */namespace app\controller;use think\Db;use wxpay\Wxpay;class RefundController extends Controller{ /** * 订单确认页面 */ public function index() { //获取当前订单ID $out_id = input('param.id'); //获取当前订单基本信息 $outOrder = db('out_order')->field('oto.*,o.*')->alias('oto')->where(['out_id' => $out_id])->join('__ORDER__ o', 'o.order_id=oto.order_id')->find(); //判断订单是否存在 if (empty($outOrder)) { $this->error('该订单不存在', '', '', ''); } //判断订单是否重复提交 if ($outOrder['state'] == '110' && $outOrder['out_status'] == '1') { $this->error('请勿重复提交订单', '', '', ''); } $data = [ 'refund_no' => date('Ymdhis', time()) . substr(floor(microtime() * 1000), 0, 1) . rand(0, 9), //退款数量 'refund_num' => '1', //buyer_id买家支付宝账号或者iD^out_price退款金额^'备注' 'refund_data' => $outOrder['buyer_id'] . '^' . $outOrder['out_price'] . '^' . '测试退款', ]; return $this->fetch('outorder/refund', $data); } /** * 确认支付 * 发送请求到支付宝(会跳转到支付宝页面等待用户支付) */ public function refund() { require_once EXTEND_PATH . 'Alipay_refund/alipayapi.php'; } /** * 支付宝异步回调方法 */ public function notifyurl() { require_once EXTEND_PATH . 'Alipay_refund/notify_url.php'; $alipayNotify = (new AlipayNotify())->verifyReturn(); $alipayNotify->verifyReturn(); }}
0 0
- 微信退款(一步步教你怎么写代码)
- 微信退款
- 微信退款
- 微信退款
- 微信退款问题
- 微信退款
- 微信退款
- 微信支付,退款
- 微信退款处理
- 微信退款接口
- 微信退款接口
- 微信 退款 java
- 微信退款通知
- Android 微信退款
- 微信退款开发
- 微信api退款及退款查询
- 微信api退款及退款查询
- 微信公众号退款java代码(整理)
- HTTP认证方式
- unity3d network 批量同步(插值平滑)子物体位置和旋转
- 虚函数和虚析构函数的实现原理
- Mina-tcp与NIO通信问题
- Hadoop 2.7.1 ZK Kafka-0.10 Nginx Redis HBase rockemq搭建
- 微信退款(一步步教你怎么写代码)
- 398. Random Pick Index 题解
- DFS求联通块
- Ubuntu 下安装 Bro
- 笔试题
- QuickSort 快速排序
- 好了,这是我第一次使用CSDN的博客,希望有个好的开始。
- JavaScript图片切换实现
- 软件工程手札