微信支付(公众号支付)简单实现

最近项目中有需要用到微信支付功能的,在姜总的指导下也简单的研究了下,在这里记录一下在这个项目中实现微信支付功能的整个过程。当然这里只做了微信支付功能和支付完成修改订单状态的功能,所以说是简单实现。。

微信支付。首先要用到微信公众平台和微信支付平台。我这里大概总结了四个步骤:

一、微信公众平台配置。

1、获取appID和appSecret。

 

2、设置微信支付商户和微信支付目录。支付目录分测试目录和正式目录,测试目录需要设置测试白名单,记得在正式上线的时候将测试目录取消改成正式目录。

 

二、微信支付平台配置。

获得微信支付商户号MCHID和商户支付密钥KEY。要注意的是:这里的商户号和微信公众平台设置的商户号是一样的。然后KEY如果不知道的时候需要自己设置。

 

三、调用支付接口。

1、将第一、二步获取的信息写到相应配置文件。

2、调用微信支付接口。这里我们只用传进来订单号orderid和订单支付总价totalpay就可以。

//①、获取用户openid
$tools = new JsApiPay();
$openId = $tools->GetOpenid();       //微信登陆时会获取到openid

//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody($orderid);                              
$input->SetAttach("XX微信支付");
$input->SetOut_trade_no($orderid);   //这里传的订单ID在整个支付过程都不会变。方便异步处理时修改订单状态。
$input->SetTotal_fee($totalpay*100);
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://shopdemo.wiiyun.com/wxpay/notify.php");  //异步处理地址
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
echo '统一下单支付单信息
';
printf_info($order);
$jsApiParameters = $tools->GetJsApiParameters($order);

四、修改订单状态。

//重写回调处理函数
	public function NotifyProcess($data, &$msg)
	{
		Log::DEBUG("call back:" . json_encode($data));
		$notfiyOutput = array();
		
		if(!array_key_exists("transaction_id", $data)){
			$msg = "输入参数不正确";
			return false;
		}
		//查询订单,判断订单真实性
		if(!$this->Queryorder($data["transaction_id"])){
			$msg = "订单查询失败";
			return false;
		}
		$orderInfo = Order::getInfoById2($data["out_trade_no"]);   //根据订单号获取订单信息
		Order::updateStatus($orderInfo['id'], 2, '付款成功');      //修改订单状态
		return true;
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值