From ce9b57b25b6b9e016d01e9627d4635cc57606045 Mon Sep 17 00:00:00 2001 From: devil_gong Date: Mon, 7 Jan 2019 15:18:11 +0800 Subject: [PATCH] pay debug --- extend/payment/WeixinMini.php | 67 +++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/extend/payment/WeixinMini.php b/extend/payment/WeixinMini.php index caa907756..50fe50869 100644 --- a/extend/payment/WeixinMini.php +++ b/extend/payment/WeixinMini.php @@ -149,25 +149,8 @@ class WeixinMini } // xml - $xml = ' - '.$this->config['appid'].' - '.$data['data']['data']['name'].' - '.$this->config['mch_id'].' - '.$data['data']['data']['nonce_str'].' - '.$data['data']['data']['notify_url'].' - '.$data['data']['data']['user_openid'].' - '.$data['data']['data']['order_no'].' - '.$data['data']['data']['spbill_create_ip'].' - '.$data['data']['data']['total_price'].' - '.$data['data']['data']['trade_type'].' - '.$data['data']['data']['attach'].' - '.$data['data']['data']['sign_type'].' - '.$data['data']['sign'].' - '; + $xml = $this->ArrayToXml($data['data']); $result = $this->XmlToArray($this->HttpRequest('https://api.mch.weixin.qq.com/pay/unifiedorder', $xml)); - - print_r($xml); - print_r($result);die; if(!empty($result['return_code']) && $result['return_code'] == 'SUCCESS' && !empty($result['prepay_id'])) { // 返回数据 @@ -185,6 +168,26 @@ class WeixinMini return DataReturn('参数不能为空', -1); } + /** + * 数组转xml + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-01-07 + * @desc description + * @param [array] $data [数组] + */ + private function ArrayToXml($data) + { + $xml = ''; + foreach($data as $k=>$v) + { + $xml .= '<'.$k.'>'.$v.''; + } + $xml .= ''; + return $xml; + } + /** * 获取支付参数 * @author Devil @@ -196,19 +199,21 @@ class WeixinMini */ private function GetPayParams($params = []) { - if(empty($params)) return ''; - - $params['appid'] = $this->config['appid']; - $params['mch_id'] = $this->config['mch_id']; - $params['nonce_str'] = md5(time().rand().$params['order_no']); - $params['spbill_create_ip'] = GetClientIP(); - $params['trade_type'] = empty($params['trade_type']) ? 'JSAPI' : $params['trade_type']; - $params['attach'] = empty($params['attach']) ? 'shopxo-attach' : $params['attach']; - $params['sign_type'] = 'MD5'; - $data = array( - 'sign' => $this->GetSign($params), - 'data' => $params, - ); + $data = [ + 'appid' => $this->config['appid'], + 'mch_id' => $this->config['mch_id'], + 'body' => $params['name'], + 'nonce_str' => md5(time().rand().$params['order_no']), + 'notify_url' => $params['notify_url'], + 'openid' => $params['user_openid'], + 'out_trade_no' => $params['order_no'], + 'spbill_create_ip' => GetClientIP(), + 'total_fee' => $params['total_price'], + 'trade_type' => empty($params['trade_type']) ? 'JSAPI' : $params['trade_type'], + 'attach' => empty($params['attach']) ? 'shopxo-attach' : $params['attach'], + 'sign_type' => 'MD5', + ]; + $data['sign'] = $this->GetSign($data), return DataReturn('success', 0, $data); } -- GitLab