微信支付 demodemo可以直接支付吗

社会化媒体
了解更多>>
桂ICP备 号
桂公网安备 36号
阅读下一篇
自媒体运营攻略
行业经验交流
Hi,在你登录以后,就可以永久免费的收藏任何您感兴趣的内容,关注感兴趣的作者!
请输入正确的邮箱
已有帐号请点击
帐号创建成功!
我们刚刚给你发送了一封验证邮件
请在48小时内查收邮件,并按照提示验证邮箱
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
你输入的邮箱还未注册
还没有帐号请点击
你输入的邮箱还未注册
又想起来了?
邮件发送成功!
我们刚刚给你发送了一封邮件
请在5分钟内查收邮件,并按照提示重置密码
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
对不起,你的帐号尚未验证
如果你没有收到邮件,请留意垃圾箱 或
意见与建议
请留下您的联系方式
* 留下您正确的联系方式,以便工作人员尽快与你取得联系
转藏至我的藏点网站已改版,请使用新地址访问:
weixinzhifudemo 微信支付接口 很好用的 大家可以来 WEB(ASP,PHP,...) 238万源代码下载-
&文件名称: weixinzhifudemo
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 3140 KB
&&上传时间:
&&下载次数: 10
&&提 供 者:
&详细说明:微信支付接口 很好用的 大家可以来-weixinzhif ujiekouhen haoyongkankan
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&【微信公众号支付】接口文档V2.5.pdf&&【微信公众号支付】收货地址共享接口文档V1.4.pdf&&【微信公众号支付】用户维权系统及接口说明V1.6.pdf&&【微信支付】退款及对账开发指南.pdf&&......公众号支付】SDKV1.1\Wx支付SDK\WxPay.java\CommonUtil.java&&.........................\.........\..........\Example.java&&.........................\.........\..........\MD5SignUtil.java&&.........................\.........\..........\MD5Util.java&&.........................\.........\..........\readme.txt&&.........................\.........\..........\SDKRuntimeException.java&&.........................\.........\..........\SHA1Util.java&&.........................\.........\..........\WxPayHelper.java&&.........................\.........\......php\CommonUtil.php&&.........................\.........\.........\createnativeurl.php&&.........................\.........\.........\example.php&&.........................\.........\.........\genappprepayid.php&&.........................\.........\.........\jsapicall.php&&.........................\.........\.........\MD5SignUtil.php&&.........................\.........\.........\nativecall.php&&.........................\.........\.........\readme.txt&&.........................\.........\.........\SDKRuntimeException.class.php&&.........................\.........\.........\WxPay.config.php&&.........................\.........\.........\WxPayHelper.php&&..................微信前端demo\wxm-pay-api-demo\wxm-pay-api-demo.html&&......支付】退款及对账demo\c#\.svn\all-wcprops&&..........................\..\....\entries&&..........................\..\....\text-base\readme.txt.svn-base&&..........................\..\readme.txt&&..........................\..\tenpay_api_b2c\.svn\all-wcprops&&..........................\..\..............\....\entries&&..........................\..\..............\....\prop-base\tenpay_api_b2c.suo.svn-base&&..........................\..\..............\....\text-base\clientCheck.aspx.cs.svn-base&&..........................\..\..............\....\.........\clientCheck.aspx.svn-base&&..........................\..\..............\....\.........\clientQueryRefund.aspx.cs.svn-base&&..........................\..\..............\....\.........\clientQueryRefund.aspx.svn-base&&..........................\..\..............\....\.........\clientQueryTrans.aspx.cs.svn-base&&..........................\..\..............\....\.........\clientQueryTrans.aspx.svn-base&&..........................\..\..............\....\.........\clientRefund.aspx.cs.svn-base&&..........................\..\..............\....\.........\clientRefund.aspx.svn-base&&..........................\..\..............\....\.........\clientTest.aspx.cs.svn-base&&..........................\..\..............\....\.........\clientTest.aspx.svn-base&&..........................\..\..............\....\.........\index.aspx.cs.svn-base&&..........................\..\..............\....\.........\index.aspx.svn-base&&..........................\..\..............\....\.........\payNotifyUrl.aspx.cs.svn-base&&..........................\..\..............\....\.........\payNotifyUrl.aspx.svn-base&&..........................\..\..............\....\.........\payRequest.aspx.cs.svn-base&&..........................\..\..............\....\.........\payRequest.aspx.svn-base&&..........................\..\..............\....\.........\payReturnUrl.aspx.cs.svn-base&&..........................\..\..............\....\.........\payReturnUrl.aspx.svn-base&&..........................\..\..............\....\.........\tenpay_api_b2c.sln.svn-base&&..........................\..\..............\....\.........\tenpay_api_b2c.suo.svn-base&&..........................\..\..............\....\.........\Web.Config.svn-base&&..........................\..\..............\App_Data\.svn\all-wcprops&&..........................\..\..............\........\....\entries&&..........................\..\..............\Backup\tenpayLib\CheckRequestHandler.cs&&..........................\..\..............\......\.........\ClientResponseHandler.cs&&..........................\..\..............\......\.........\MD5Util.cs&&..........................\..\..............\......\.........\Properties\AssemblyInfo.cs&&..........................\..\..............\......\.........\RequestHandler.cs&&..........................\..\..............\......\.........\ResponseHandler.cs&&..........................\..\..............\......\.........\TenpayHttpClient.cs&&..........................\..\..............\......\.........\tenpayLib.csproj&&..........................\..\..............\......\.........\TenpayUtil.cs&&..........................\..\..............\......\tenpay_api_b2c.sln&&..........................\..\..............\......\tenpay_api_b2c.v12.suo&&..........................\..\..............\.in\.svn\all-wcprops&&..........................\..\..............\...\....\entries&&..........................\..\..............\...\....\prop-base\tenpayLib.dll.svn-base&&..........................\..\..............\...\....\.........\tenpayLib.pdb.svn-base&&..........................\..\..............\...\....\text-base\tenpayLib.dll.svn-base&&..........................\..\..............\...\....\.........\tenpayLib.pdb.svn-base&&..........................\..\..............\...\tenpayLib.dll&&..........................\..\..............\...\tenpayLib.pdb&&..........................\..\..............\clientCheck.aspx&&..........................\..\..............\clientCheck.aspx.cs&&..........................\..\..............\clientQueryRefund.aspx&&..........................\..\..............\clientQueryRefund.aspx.cs&&..........................\..\..............\clientRefund.aspx&&..........................\..\..............\clientRefund.aspx.cs&&..........................\..\..............\index.aspx&&..........................\..\..............\index.aspx.cs&&..........................\..\..............\tenpayLib\.svn\all-wcprops&&..........................\..\..............\.........\....\entries&&..........................\..\..............\.........\....\text-base\CheckRequestHandler.cs.svn-base&&..........................\..\..............\.........\....\.........\ClientResponseHandler.cs.svn-base&&..........................\..\..............\.........\....\.........\MD5Util.cs.svn-base&&..........................\..\..............\.........\....\.........\RequestHandler.cs.svn-base&&..........................\..\..............\.........\....\.........\ResponseHandler.cs.svn-base&&..........................\..\..............\.........\....\.........\TenpayHttpClient.cs.svn-base&&..........................\..\..............\.........\....\.........\tenpayLib.csproj.svn-base&&..........................\..\..............\.........\....\.........\TenpayUtil.cs.svn-base&&..........................\..\..............\.........\bin\.svn\all-wcprops&&..........................\..\..............\.........\...\....\entries&&..........................\..\..............\.........\...\Debug\.svn\all-wcprops&&..........................\..\..............\.........\...\.....\....\entries&&..........................\..\..............\.........\...\.....\....\prop-base\tenpayLib.dll.svn-base&&..........................\..\..............\.........\...\.....\....\.........\tenpayLib.pdb.svn-base&&..........................\..\..............\.........\...\.....\....\text-base\tenpayLib.dll.svn-base&&..........................\..\..............\.........\...\.....\....\.........\tenpayLib.pdb.svn-base&&..........................\..\..............\.........\...\.....\tenpayLib.dll
&近期下载过的用户:
&&&&&&&&[]
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 关于微信支付前端模块页面
有兴趣的你可以来看一看
&[] - 微信支付开发模块,很详细的,java的,有需要的可以下载
&[] - 支付宝接口集成指南,对支付宝开发很有用,希望对大家有用
&[] - 支付宝支付接口学习例子,支付宝官方网站公布。包括:纯担保交易接口、确认发货接口、支付宝手机客户端LOGO。
&[] - 微信支付退款接口 很好用的
大家可以来看看关于微信支付PHP SDK之微信公众号支付实现代码-微信开发-PHP中文网QQ群微信公众号还没有收藏关于微信支付PHP SDK之微信公众号支付实现代码这篇文章主要介绍了关于微信支付PHP SDK之微信公众号支付实现代码的相关资料,需要的朋友可以参考下这里假设你已经申请完微信支付1. 微信后台配置
如图我们先进行测试,所以先把测试授权目录和 测试白名单添加上。测试授权目录是你要发起微信请求的哪个文件所在的目录。例如 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号。正式的支付授权目录不能和测试的一样否则会报错。不填写或者填错授权目录以及测试白名单都会报错。报错样例:NaNsystem:access_denied不在测试白名单2. 配置 lib/WxPay.Config.php文件最主要配置一下四项:const APPID = '';const MCHID = '';const
= '';const APPSECRET = '';APPID 和 APPSECRET都可以在微信后台中找到。MCHID 在申请微信支付后发来的邮件中可以找到,KEY 则根据邮件提示去商户平台配置即可。3. 访问起始 index.php 首先访问 index.php 你可以看到界面我们首先需要的是 JSAPI支付。但是看代码 index.php 最下面的链接。他默认是个demo的链接,改为我们自定义的即可&ul&
&li style=&background-color:#FF7F24&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/jsapi.php';?&&&JSAPI支付&/a&&/li&
&li style=&background-color:#698B22&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/micropay.php';?&&&刷卡支付&/a&&/li&
&li style=&background-color:#8B6914&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/native.php';?&&&扫码支付&/a&&/li&
&li style=&background-color:#CDCD00&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/orderquery.php';?&&&订单查询&/a&&/li&
&li style=&background-color:#CD3278&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/refund.php';?&&&订单退款&/a&&/li&
&li style=&background-color:#848484&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/refundquery.php';?&&&退款查询&/a&&/li&
&li style=&background-color:#8EE5EE&&&a href=&&?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'example/download.php';?&&&下载订单&/a&&/li&
&/ul&当然你也可以直接写死为自己的访问链接。4. JSAPI 支付必要代码解析:$logHandler= new CLogFileHandler(&../logs/&.date('Y-m-d').'.log');
$log = Log::Init($logHandler, 15);调用 可以通过 $log-&DEBUG(‘test‘); 打印信息。其实也可以直接使用 $Log::DEBUG(‘test‘); 来调试$tools = new JsApiPay();
$openId = $tools-&GetOpenid();主要是为了获取 openid 其中GetOpenid() 定义在 文件 WxPay.JsApiPay.php 文件中public function GetOpenid()
//通过code获得openid
if (!isset($_GET['code'])){
//触发微信返回code码
$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING']);
$url = $this-&CreateOauthUrlForCode($baseUrl);
Header(&Location: $url&);
//获取code码,以获取openid
$code = $_GET['code'];
$openid = $this-&getOpenidFromMp($code);
}$baseUrl 其实就是为了在跳转回来这个页面。
可以继续跟踪函数CreateOauthUrlForCode()
其实就是通过微信的Auth2.0 来获取Openid参考链接:这就需要你把微信的 网页授权也设置好。获取到 Openid 就可以调用微信支付的统一下单接口了。回到 文件 jsapi.php 如下代码$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./example/notify.php&);
$input-&SetTrade_type(&JSAPI&);
$input-&SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
echo '&font color=&#f00&&&b&统一下单支付单信息&/b&&/font&&br/&';
printf_info($order);
$jsApiParameters = $tools-&GetJsApiParameters($order);这里面的代码:$input-&SetAttach(&test&);如果 把值改为 $input-&SetAttach(&test this is attach&);就会存在bug 后面再说,其实这个参数不是必须的干脆可以去掉。代码:$input-&SetNotify_url();是设置接收支付结果通知的Url 这里是默认的demo 链接我们可以设置成我们的:$input-&SetNotify_url(dirname('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'/notify.php');当然你也可以选择直接写死。其中的函数 unifiedOrder($input) 可以到WxPay.Api.php 中文件跟踪,其实就是调用统一下单接口。在 WxPay.Api.php 中需要更改的一处代码是://异步通知url未设置,则使用配置文件中的url
if(!$inputObj-&IsNotify_urlSet()){
$inputObj-&SetNotify_url(WxPayConfig::NOTIFY_URL);//异步通知url
}就是当没设置 notifyUrl 的时候回去配置文件中找,但是配置文件中根本没有设置。所以你可以选择在 配置文件WxPay.Config.php 中加上这个配置,也可以直接写一个默认的notify链接。函数 GetJsApiParameters() 是获取jsApi支付的参数给 $jsApiParameters 方便在下面的Js中调用jsapi.php 中js的代码:function jsApiCall()
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
&?php echo $jsApiP ?&,
function(res){
WeixinJSBridge.log(res.err_msg);
alert(res.err_code+res.err_desc+res.err_msg);
function callpay()
if (typeof WeixinJSBridge == &undefined&){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
jsApiCall();
}其中点击立即支付调用的就是 callpay() 函数,他有会调用jsApiCall() 函数打开支付程序。此后输入密码完成支付。在完成支付页面点击完成会回到这个支付页面,并弹出 支付成功的提示框这个其实就是 js函数 jsApiCall 里面的alter 弹出的对话框其中 res.err_msg 为get_brand_wcpay_request:ok 表明前端判断的支付成功,我们可以根据这个将支付跳转到成功页面。但是这个并不可信。确认是否支付成功还是应当 通过notify.php 处理业务逻辑。5. 支付结果通知 notify.php其实这个页面最主要的代码就两行$notify = new PayNotifyCallBack();
$notify-&Handle(false);其中大部分逻辑在 Handle 函数中处理 文件 WxPay.Notify.phpfinal public function Handle($needSign = true)
$msg = &OK&;
//当返回false的时候,表示notify中调用NotifyCallBack回调失败获取签名校验失败,此时直接回复失败
$result = WxpayApi::notify(array($this, 'NotifyCallBack'), $msg);
if($result == false){
$this-&SetReturn_code(&FAIL&);
$this-&SetReturn_msg($msg);
$this-&ReplyNotify(false);
//该分支在成功回调到NotifyCallBack方法,处理完成之后流程
$this-&SetReturn_code(&SUCCESS&);
$this-&SetReturn_msg(&OK&);
$this-&ReplyNotify($needSign);
}主要代码:$result = WxpayApi::notify(array($this, 'NotifyCallBack'), $msg);跟踪函数 notify 文件WxPay.Api.phppublic static function notify($callback, &$msg)
//获取通知的数据
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
//如果返回成功则验证签名
$result = WxPayResults::Init($xml);
} catch (WxPayException $e){
$msg = $e-&errorMessage();
return call_user_func($callback, $result);
}通过 $GLOBALS[‘HTTP_RAW_POST_DATA‘]; 获取同志数据 然后 Init 函数验证签名等。验签成功运行代码return call_user_func($callback, $result);即调用了一个,NotifyCallBack() 函数并传递参数 $result 在NotifyCallBack函数中会调用我们重写的NotifyProcess()函数(此函数在notify.php 中被重写)NotifyProcess() 判断也没有问题就会 设置返回 success的xml信息$this-&SetReturn_code(&SUCCESS&);
$this-&SetReturn_msg(&OK&);并最终调用函数 $this-&ReplyNotify($needSign);
echo success的结果函数ReplyNotify 需要修改一处代码:final private function ReplyNotify($needSign = true)
//如果需要签名
if($needSign == true &&
$this-&GetReturn_code($return_code) == &SUCCESS&)
$this-&SetSign();
WxpayApi::replyNotify($this-&ToXml());
$this-&GetReturn_code($return_code) == &SUCCESS&)改为$this-&GetReturn_code() == &SUCCESS&)即可。这样整个流程就结束了。上面提到了 传递订单参数$input-&SetAttach(&test&);如果我设置 值为 test this is attach (其实只要有空格就会存在bug)如图 传递的订单信息可以看到 attach 信息正常,当然支付也是正常的没有任何问题。但是发现总是会收到notify 通知,即意味着没有返回给微信服务器正确的结果通知。 打印服务器发来的通知数据可以看到 attach 是 test+this+is+attach 即空格被转化为加号打印接收到的签名和程序算出来的签名发现 签名不同,即认为接收结果异常。所以我们要是想使用attach 这个值就不能有空格,要么干脆不使用这个参数(等待微信修复这个bug, 也可能是我这边有哪个地方不会? - -#)这样 微信支付的 JsApi支付就大致分析完成了。以上就是关于微信支付PHP SDK之微信公众号支付实现代码的详细内容,更多请关注php中文网其它相关文章!共3篇663点赞收藏分享:.&猜你喜欢php微信支付源码+DEMO:首页上一页下一页尾页PHP中文网:独家原创,永久免费的在线,php技术学习阵地!
All Rights Reserved | 皖B2-QQ群:关注微信公众号android调用微信支付,填坑
关于android调用微信支付,在网上基本是骂声一片。在于官方文档,对于许多问题都没有描述。我罗列一下我遇到的麻烦,供大家参考
首先想要获取微信支付功能,必须在微信开放平台,申请app 支付能力,根据官方文档,按照要求,完成后 官方会提供 appid .appsercert两个重要参数。以及自己设置的应用签名
一:官方文档
https://pay./wiki/doc/api/app/app.php?chapter=9_1
根据官方文档,app需要先调用预支付接口获得 prepayid 等,按照要求来不能出错,
值得注意的是sign ,参考签名生成算法
vczhuanHqcP7yfqzybmkvt+jrMTjv8nS1NTa19S8us/uxL/W0LTy06HX1Ly6tcTK/b7dus1zaWduIMi7uvO6zcepw/u5pL7ftcSxyLbUPGJyIC8+DQo8c3Ryb25nPjxlbT6jqNK7sOO5q8u+tcTP7sS/u+HRodTx1Nq3/s7xtsvX9rrD1eLQqaOszOG5qb3Tv9rE477Nv8nS1LvxyKFwcmVwYXlfaWSjqTwvZW0+PC9zdHJvbmc+PC9wPg0KPHA+vdPPwsC0vs3Kx7X308POotDF1qe4tqOs0rLKx7rcv9O1xLXYt708YnIgLz4NCjxpbWcgYWx0PQ==":" src="/Collfiles/3.png" title="\" />
调用微信支付代码不多,对应填参数就可以 。不要忘记先注册app到微信
用过微信充话费的话,都知道支付完成,会跳转到一个订单描述,提示订单完成的界面,点击完成按钮,返回聊天界面(第三方app 肯定要跳转到我们自己的app里面)。微信支付在官方文档没有提到这些怎么操作,但是看给的支付例子demo,可以看到有个WXPayEntryActivity.class他的包名必须是项目包名+wxapi
在WXPayEntryActivity.class里面对返回response判断,做自己的处理,这个界面不能少,少了就返回不了自己的app,
我选择response.errcode==0,立马跳转,关闭这个界面。
接下来是我遇到最让我头痛的问题,运行程序,第一次可以正常支付,但是以后再也不行,errcode==-1,即使是官方的demo也是如此。对于一个菜鸟来说根本不知道发生了什么。查看官方的说明
参数不对,我一遍又一遍的对参数,还是不行。想shi的心都有,请教别人的时候大多说是参数不对,对照签名工具什么的慢慢查吧。我界面别人的手机发现官方的demo和自己的东西都是可以支付的,我还以为自己的手机坏了,想着换手机,shit. 结果确实他们第二次支付的时候都返回errcode==-1. 在网上查啊查 有人说要在配置文件中设置
据说这里不填,偶尔会有一些意外收获。胆子大的可以试试。然后这个方法还是没有解决问题尝试第二种方法: 清微信缓存。这难道是一个调用方法吗?结果大吃一惊 给你们演示一下:
这个百分百可以成功。唯一不解的是,即使卸载微信,重新安装也不一定每一次都可以。但是这种方法明显不能去用,难道打个Toast 让用户先清除一下先???即使有这样的方法调用,那也将用户的有用数据,比如未读消息给清楚掉,每次还要重新登录微信。
下一个方法就是应用签名!!!!将自己的应用签名换成和微信开放平台上应用签名一致,简单的说就是第一次应用签名的时候有个.keystore文件,拿过来重新布置一下(对于签名不熟悉的童鞋,可以百度一下)。注意一点微信开放平台上面的包名必须和你在配置文件中注册的包名一致我拿官方支付的demo演示一下
再次运行官方的demo,每次都是可以支付了
《又说错的地方,欢迎大家指出来 毕竟我也是一只菜鸟》

我要回帖

更多关于 微信支付 demo 的文章

 

随机推荐