微信实现扫码支付(native)

准备

在微信支付官网下载SDK(Software Development Kit):https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

目录

一、生成付款码

二、付款生成订单

三、处理回调信息

四、支付完成后完成的跳转

五、订单号查询

六、微信支付关闭订单

七、微信支付退款


 

一、生成付款码

native模式(扫码支付)只需要配置APPID、MCHID、KEY,这3个在【微信支付】官网里面都能找到,配置好这三个就能生成二维码

第一步:在sdk的example的WxPay.Config.php配置

1、APPID:绑定支付的APPID(必须配置,开户邮件中可查看)

2、MCHID:商户号(必须配置,开户邮件中可查看)

3、KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置)

4、APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置)

第二步:认识native.php文件

native.php接收页面传过来的数据

微信实现扫码支付(native)_第1张图片

微信实现扫码支付(native)_第2张图片

//生成直接支付的url,支付url有效期2个小时
$notify = new NativePay();

//统一下单输入对象
$input = new WxPayUnifiedOrder();

//商品的名称
$input->SetBody("test");
$input->SetAttach("test");

//订单号
$input->SetOut_trade_no("sdkphp123456789".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/notify.php");

//支付类型
$input->SetTrade_type("NATIVE");

//产品内部的id
$input->SetProduct_id("123456789");

//进行测试
var_dump($input);

$result = $notify->GetPayUrl($input);
$url2 = $result["code_url"];


二、付款生成订单

新生成的订单送到数据库里面

微信实现扫码支付(native)_第3张图片

往数据库里面进行插入

微信实现扫码支付(native)_第4张图片

三、处理回调信息

//微信回调返回信息的地址
$input->SetNotify_url("http://paysdk.weixin.qq.com/notify.php");

上面代表回调信息处理的地方

对notify.php文件的NotifyProcess类的 【3、处理业务逻辑】进行处理,其他地方已经被官方被封装好了的

将微信平台返回来的transaction_id字段的信息,写到数据库里面

微信实现扫码支付(native)_第5张图片

四、支付完成后完成的跳转

支付成功需要进行页面跳转,不然网站页面一直停留在二维码这个页面

1、在native.php页面添加

 

微信实现扫码支付(native)_第6张图片

2、新建一个页面

微信实现扫码支付(native)_第7张图片

五、订单号查询

直接选用example里面的orderquery.php这个页面就能实现订单查询

微信实现扫码支付(native)_第8张图片

六、微信支付关闭订单

微信官网API:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_3

用官方的orderquery.php改造为orderclose.php,改造后的界面

微信实现扫码支付(native)_第9张图片

七、微信支付退款

注意:退款需要安装证书,证书下载地址:在商户微信支付官网的API安全里面下载

1、得到【WxCertUtil.exe】里面的【微信支付商户平台证书工具.exe】

2、复制【请求字符串】到【商户微信支付官网的API安全】得到【证书串】

3、将【证书串】粘贴到【微信支付商户平台证书工具】得到【证书

将得到证书重命名【cert】放到项目的与exmple目录同级

从哪里来退到哪里去

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(支付)