Example #1
0
 /**
  *
  * 支付结果通用通知
  */
 public static function notify($callback, &$msg)
 {
     //获取通知的数据
     $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
     //如果返回成功则验证签名
     try {
         $wxpay_data_base = new WxPayDataBase();
         $result = $wxpay_data_base->FromXml($xml);
         $result = $wxpay_data_base->GetValues();
     } catch (WxPayException $e) {
         $msg = $e->errorMessage();
         return false;
     }
     return call_user_func($callback, $result);
 }
Example #2
0
 /**
  * 设置签名
  * @param string $value
  **/
 public function SetSign()
 {
     $this->values['sign'] = parent::SetSign();
 }
Example #3
0
    //参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
    $timestamp = time();
    $arr = array();
    //公众账号ID
    $arr['appid'] = trim(WxPayConfig::APPID);
    //商户号
    $arr['partnerid'] = trim(WxPayConfig::MCHID);
    //预支付交易会话标识
    $arr['prepayid'] = $order['prepay_id'];
    //包的格式
    $arr['package'] = 'Sign=WXPay';
    //随机字符串
    $arr['noncestr'] = $order['nonce_str'];
    //时间戳
    $arr['timestamp'] = $timestamp;
    $obj = new WxPayDataBase();
    $obj->SetValues($arr);
    $sign = $obj->SetSign();
    $data = array();
    $data['return_code'] = $order['return_code'];
    $data['return_msg'] = $order['return_msg'];
    $data['prepay_id'] = $order['prepay_id'];
    $data['trade_type'] = $order['trade_type'];
    $data['nonce_str'] = $order['nonce_str'];
    $data['timestamp'] = $timestamp;
    $data['sign'] = $sign;
    $data['out_trade_no'] = $outTradeNo;
    $order = json_encode($order);
    file_put_contents("log.txt", "\n\n预支付成功----{$order}", FILE_APPEND);
    echo json_encode(array('code' => 1, 'msg' => '成功', 'data' => $data));
}