微信 jsapi支付 和 Native支付 php

本文详细介绍了使用PHP实现微信JSAPI支付和Native支付的步骤,包括下单、调起支付、回调处理以及扫码支付的二维码生成与回调。确保预先配置appid、mchid、支付回调地址、AppSecret、证书路径等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请事先配置好相关

appid 

商户mchid 

支付成功回调地址/签名方式

商户密钥key AppSecret 

证书路径地址等 

一、JSAPI

1、下单

// jsapi统一下单接口
	public function buyservice(){
		$URL = "回调地址";
        // 生成订单号  存储用于后期判断
        $orderCode = $this->setOrderCode();
		// $fee = '0.01';
		$fee = 100;
		$get = 'get参数';
        $saveArr = array(
            'paySta' => 4,
            'phone' => $get['phone'],
            'whichid' => $get['whichid'],
            'order'  => $orderCode,
            'time' => date('YmdHis',time()),
            'money' => $fee,
        );
        $saveOrder = M('wx_order')->add($saveArr);
		
        $project = "嘻唰唰服务";
		$tools = new \JsApiPay();
		$openId = $tools->GetOpenid('');
		//②、统一下单
		$input = new \WxPayUnifiedOrder();
		$input->SetBody($project);
		$input->SetAttach("xss_".$saveOrder);
		$input->SetOut_trade_no($orderCode);
		$input->SetTotal_fee($fee*100);
		$input->SetTime_start(date("YmdHis"));
		$input->SetTime_expire(date("YmdHis", time() + 600));
		$input->SetGoods_tag($project);
		$input->SetNotify_url($URL);
		$input->SetTrade_type("JSAPI");
		$input->SetOpenid($openId);
		$config = new \WxPayConfig();
		$order = \WxPayApi::unifiedOrder($config, $input);
		// echo '<font color="#f00"><b>统一下单支付单信息</b></font><br/>';
		// dump($order);
		$jsApiParameters = $tools->GetJsApiParameters($order);
		// dump($jsApiParameters);

		//获取共享收货地址js函数参数
		// $editAddress = $tools->GetEditAddressParameters();

		$this -> assign(array(
			'data' => $jsApiParameters,
			'project' => $project,
			//'pyid' => $pyid
			//'address' => $editAddress
		));
		$this 
### 微信支付JSAPINative支付的区别 #### 支付方式定义 - **JSAPI支付** 是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。这种方式适用于用户在微信环境中(如公众号文章、聊天窗口中的链接)访问商户的HTML5页面并进行支付操作[^1]。 - **Native支付** 则是指生成支付二维码供顾客扫码付款的方式,通常用于线下实体店铺或线上平台的商品购买确认页上展示给买家扫描完成交易过程[^2]。 #### 应用场景差异 对于 **JSAPI支付**, 用户需处于微信客户端内部环境才能触发支付流程;而 **Native支付** 不依赖于特定的应用程序运行状态,只要能识别二维码设备均可参与支付活动,因此更适配于实体店舖等需要即时结账服务的地方[^4]。 #### 开发实现要点对比 当采用 **JSAPI支付方案** 进行集成时,开发者主要关注如何安全有效地获取前端所需的签名参数以及处理回调通知逻辑等问题。而对于 **Native支付**, 关键在于正确构建请求URL以生成有效的条形码/二维码图像文件,并确保该图标的清晰度足以被各类读取工具解析成功[^5]。 ```php // 以下是PHP环境下简单模拟两种支付类型的代码片段: // JSAPI支付部分 (假设已引入必要的库) $jsApiParameters = [ 'appId' => '', 'timeStamp' => time(), 'nonceStr' => createNoncestr(), // 自定义方法创建随机字符串 'package' => 'prepay_id=' . $prepayId, 'signType' => 'MD5', ]; $jsApiSign = makeSign($jsApiParameters); // 计算签名的方法 // Native支付部分(仅示意QRCode生成环节) require_once 'phpqrcode/phpqrcode.php'; $url = urldecode($_GET["data"]); if (substr($url, 0, 6) == "weixin") { \QRcode::png($url); } else { header('HTTP/1.1 404 Not Found'); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值