Giter Site home page Giter Site logo

dedemao / weixinpay Goto Github PK

View Code? Open in Web Editor NEW
1.1K 48.0 608.0 152 KB

微信支付单文件版。一个PHP文件搞定微信支付系列。包括原生支付(扫码支付),H5支付,公众号支付,现金红包、企业付款到零钱等。新增V3版。

Home Page: https://www.dedemao.com/wx/demo.html

PHP 100.00%

weixinpay's Introduction

weixinPay

一个PHP文件搞定微信支付系列

网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的(代码只有200行左右),每个文件独立运行,不依赖和引入其他文件,希望可以给各位想接入微信支付的带来些许帮助和借鉴意义。

一个PHP文件搞定支付宝系列请移步:https://github.com/dedemao/alipay

在线演示

https://www.dedemao.com/wx/demo.html

环境依赖

PHP5.0以上,且需要开启CURL服务、SSL服务。

文件对应说明

native.php 原生支付(扫码支付)

barcode.php 刷卡支付(商户扫描用户收款码)

jsapi.php 公众号支付

H5.php H5支付

redpack.php 现金红包

transfers.php 企业付款到零钱

notify.php   异步回调通知

refund.php 退款

注意事项

1.需要用到微信支付的哪一种支付方式,就只下载对应的单个文件即可。

2.文件开头的配置信息必须完善

3.文件需放到支付授权目录下,可以在微信支付商户平台->产品中心->开发配置中设置。

4.如提示签名错误可以通过微信支付签名验证工具进行验证:https://pay.weixin.qq.com/wiki/tools/signverify/

若对您有帮助,可以赞助并支持下作者哦,谢谢!

联系邮箱:[email protected]

weixinpay's People

Contributors

dedemao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weixinpay's Issues

支付方法里,元转换分不应该使用intval,这样精度有问题

支付方法里,元转换分不应该使用intval,这样精度有问题。
比如支付19.9元,实际唤起的支付金额为19.89元。
可以使用bcmul()函数
源代码:
$unified = array(
'appid' => $config['appid'],
'attach' => 'pay', //商家数据包,原样返回,如果填写中文,请注意转换为utf-8
'body' => $orderName,
'mch_id' => $config['mch_id'],
'nonce_str' => self::createNonceStr(),
'notify_url' => $notifyUrl,
'openid' => $openid, //rade_type=JSAPI,此参数必传
'out_trade_no' => $outTradeNo,
'spbill_create_ip' => '127.0.0.1',
'total_fee' => intval($totalFee * 100), //单位 转为分
'trade_type' => 'JSAPI',
);

修改代码:
$unified = array(
'appid' => $config['appid'],
'attach' => 'pay', //商家数据包,原样返回,如果填写中文,请注意转换为utf-8
'body' => $orderName,
'mch_id' => $config['mch_id'],
'nonce_str' => self::createNonceStr(),
'notify_url' => $notifyUrl,
'openid' => $openid, //rade_type=JSAPI,此参数必传
'out_trade_no' => $outTradeNo,
'spbill_create_ip' => '127.0.0.1',
'total_fee' => bcmul($totalFee,100), //单位 转为分
'trade_type' => 'JSAPI',
);

回调

回调地址在哪配置了

微信 V3 的异步回调失败的代码存在问题

微信判断 V3 的异步回调是否成功的标准,主要是依据 HTTP 状态码,而非响应内容。经过测试,无论响应什么内容,只要状态码是 200 都会被判定为成功,不再发送后续请求。我就此联系了微信人工客服,得到了确认。因此在 notify_v3.php 中对验签失败或业务处理失败的响应,需要修改。
官方文档 底部
最后不得不吐槽,微信的官方文档真是稀碎啊

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.