在Cocos游戏中接入微信支付

上次我们通过手动的加密接入了一些微信的api,这次我们继续把微信支付功能接入到猫狗大战中,顺带把页面加密也更换为动态加密方式。
(上次的帖子:http://www.cocoachina.com/bbs/read.php?tid-281137.html)

首先打开:
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E5.8F.91.E8.B5.B7.E4.B8.80.E4.B8.AA.E5.BE.AE.E4.BF.A1.E6.94.AF.E4.BB.98.E8.AF.B7.E6.B1.82
jssdk相关说明都在这里,我们这次需要接入的微信支付在页面最底下

为了省事,我们直接使用微信的demo来搭建后端环境:
https://res.wx.qq.com/paymchres/zh_CN/htmledition/download/bussiness-course3/wxm-payment-biz-api218f8e.zip
下载使用公众号发起支付请求的demo。并且解压出php版本
(完整地址:https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmpl&lang=zh_CN)

将整个文件夹复制进需要接入支付的页面文件夹,然后打开
WxPayPubHelper/WxPay.pub.config.php文件,配置里面的相关参数

JS_API_CALL_URL需要填入支付页面的地址

然后在微信中访问index.php,并点击JSapi支付demo。
这时候我们会看到好多PHP报错信息。。。原来是demo中的CURLOPT_TIMEOUT写成了CURLOP_TIMEOUT。。。这是什么情况。。。
根据提示的文件和行数改之:
WxPayPubHelper.php 821
WxPayPubHelper.php 155
WxPayPubHelper.php 175 将这行注释掉curl_close($ch)

我们将js_call_.php 83行的WeixinJSBridge.log(res.err_msg);改成alert(res.err_msg):
运行发现,页面还是报错,弹出了getBrandWCPayRequest:fail_no permission to execute

查找各种文档后发现,原来是配置的支付目录和现在测试的目录不匹配造成的。
我们打开公众平台,点击微信支付-开发配置

如果只是测试使用,则填写支付测试的目录和允许测试的微信号,待测试通过后,发布到线上的地址,再填写支付配置的支付目录。(注意demo中的支付链接其实在/demo/文件夹内,所以要填写http://xxx/demo/)

到这里就一切就绪了,点击贡献一下,正常的弹出了支付对话框。

我们现在开始接入原先的游戏:

之前我们在游戏中实现了wifi的检测以及右上角菜单的消失和显示(点击游戏上方的显示菜单和隐藏菜单,右上角的三个。。。菜单会相应的显示和消失),但之前我们用的是静态的加密方式,现在我们把它改成动态的。

首先我们在刚刚的文档页面把jssdk的demo下载下来,将php的demo复制出来,并且将我们之前的wecat游戏copy到网站目录下,然后将index.html改成index.php。并在头部增加部分php代码初始化sdk(分别填入AppID和AppSecret)

然后把jssdk.php文件中所有的json读取都改成:
file_get_contents(dirname(FILE) . “/jsapi_ticket.json”);
增加dirname(FILE) . 否则会读取到入口php的相对路径。

最后修改wx.config

试试在微信中打开游戏,已经能够动态生成加密数据了。

然后将demo/js_api_call.php内头部的php代码复制到index.php头部,最后增加一个赞助的链接。
搞定!!

看看完成后的页面叭,记得在微信中打开。

http://www.itharbors.com/wxcat/

附上完整的代码,替换其中的appid等参数就行了。

apache.rar (219 KB)

常见的问题:

1.支付页面跳转提示uri错误:打开公众平台开发者中心,在接口权限表里面找到 “网页授权获取用户基本信息” 点击修改,然后设置成需要跳转的域名
2.支付跳转页面白屏无反应: 检查php是否打开了curl,如果没有打开curl,会一直停留在空白页面
3.fail_no permission to execute:支付配置的目录和当前目录不匹配,到支付设置中增加一个目录地址就行了

4赞

谢谢楼主,收藏了

伪前排,收藏了,顺便顶一个

万分感谢,亲人呐!受我一摆:866:

非常感谢,收藏了

这个必须定了!

论坛出BUG了

无法发新帖子了??

学习~~~~~~~~~~~~~~~~~~~~~~~~~

我申请公众号的时候注意到,只有企业主体申请服务号并认证,然后才能提交各种材料申请微信支付业务,而且查询到相关的类目也没有游戏。
想问下楼主是怎么申请下来的?

已收藏,谢谢分享