首页 / PHP / 微信支付——扫码支付
微信支付——扫码支付
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了微信支付——扫码支付,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2885字,纯文字阅读大概需要5分钟。
内容图文
![微信支付——扫码支付](/upload/InfoBanner/zyjiaocheng/154/a9d87bec83de43bd9dffe6da23489f7b.jpg)
一些配置和代码SDK以及SDK存在的错误可以参考上一篇 微信支付的文章
微信支付 —— 公众号支付代码详解
友情提示以下内容实在简陋 - -# 如果你跑通了 Jsapi支付,那么扫码支付其实没什么太特别的。
扫码支付发起支付的文件在 example SDK 中的 native.php 文件中
扫码支付有两种支付方式,在使用扫码支付之前必须配置 支付回调URL具体配置 参考
微信开发者文档 http://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_3
两种支付方式的介绍
模式1:http://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
模式2:http://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5
其实模式2 不需要设置回调URL 但是一旦你修改了支付配置,而且要使用扫码支付就必须勾选Native原生支付,此时回调URL也就是必填项了
但是我只想用模式2 ,模式2 用不到回调URL,只好胡乱写了个以后使用模式1可能使用的URL了。
代码分析:
扫码支付模式1
$notify = new NativePay(); $url1 = $notify->GetPrePayUrl("123456789");主要看一下 扫码支付模式2
$input = new WxPayUnifiedOrder(); $input->SetBody("test"); $input->SetAttach("test"); $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis")); $input->SetTotal_fee("1"); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("test"); $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php"); $input->SetTrade_type("NATIVE"); $input->SetProduct_id("123456789"); $result = $notify->GetPayUrl($input); $url2 = $result["code_url"];
二维码:
首先实例化类WxPayUnifiedOrder,然后设置一些支付所需的参数,并将所需参数传给函数 GetPayUrl()
函数定义在 example/Wxpay.NativePay.php 文件中
public function GetPayUrl($input) { if($input->GetTrade_type() == "NATIVE") { $result = WxPayApi::unifiedOrder($input); return $result; } }
$result = WxPayApi::unifiedOrder($input);此处代码即为 调用统一下单接口 ,代码位于 文件 lib/WxPay.Api.php 其中部分代码
if($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsOpenidSet()){ throw new WxPayException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"); } if($inputObj->GetTrade_type() == "NATIVE" && !$inputObj->IsProduct_idSet()){ throw new WxPayException("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!"); }
判断支付方式,如果是 JsApi 方式需要Openid
Native 方式必须需要product_id , 顺便再吐槽一下,判断是否是Native 支付方式,缺少product_id 提示的 后面竟然是 JSAPI 必填product_id ,
唉,真是不能再马虎了,SDK都可以这么马虎的写写也没sei了
在之后就是调用统一下单接口流程了。
函数执行完毕会返回一个 weixin:// 开头的链接,再调用phpqrcode 程序生成二维码即可。
支付结果处理页面仍使用notify.php 文件中的处理逻辑就可以了。
延伸阅读:
微信支付之扫码支付(java版 native原生支付)
微信支付开发流程
微信支付JS-SDK最新版,从0开始
iOS-关于微信支付
以上就介绍了微信支付—— 扫码支付,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的微信支付——扫码支付全部内容,希望文章能够帮你解决微信支付——扫码支付所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。