quick-cocos2d-x 实现在lua里面完成android支付宝的接入
quick-cocos2d-x 实现在lua里面完成android支付宝的接入
一、支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程。然后下载他们的sdk-WS_SECURE_PAY_SDK。
二、开始集成。
1、在eclipse里面导入alipay的工程库 WS_SECURE_PAY_SDK/paydemo/Android_SDK/alipay_lib
然后在自己的项目里面引用一下。
2、写自己的java类。keys.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Alipay.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
|
3、在lua里面调用Alipay的静态方法payAli,把你需要的参数传到payAli的方法里面,包括回调函数。在java里面通
Cocos2dxLuaJavaBridge.callLuaFunctionWithString来回调lua的方法,然后在lua里面告诉服务器玩家的支付结果,服务器也需要去验证一次支付,服务器端就不说了。
-- 获取android版billid function buyProxy.getALiPayBill( vo ) if isNet() then f.showLoading() local function alipCallBack( dataString ) buyProxy.alipayTimes = 0 if type(dataString) == "string" then buyProxy.aliPayResult(dataString,vo) end end local function back( returnData ) if device.platform == "android" then local args = { tostring(returnData.data.billid), "天天弹钢琴", "购买钻石 X"..vo.diamond, vo.money, alipCallBack } buyProxy.alipayBillId = returnData.data.billid local sig = "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)Z" local AliPayClass = "com/funhappy/game/piano/QLALiPay" local ok, ret = luaj.callStaticMethod(AliPayClass, "payAli", args,sig) --没有返回默认nil if ok then print("getIsValid,ret:",ret) return ret else print("shareEvent error code = ", ret) end end end local msg = { productid = vo.pID} NetUtil.postHttp(GAME_SERVER.."c=alipay&m=get_billid",back,msg) else f.showAlert("网络不稳定,请检查您的网络") end end