使用unity3d 接入anySDK的总结2

    通过AnySDKIAP设置支付的回调函数,例如我这里的IAPExternalCall

AnySDKIAP.getInstance () .setListener (this,"IAPExternalCall");

    客户端设置好支付回调函数,然后通过调用

AnySDKIAP.getInstance().payForProduct(products);

来发起支付请求(需要传入一个product的数据字典,需要的参数在anysdk文档中有写)。 待支付成功后,客户端会调支付成功的分支,并且此时可以通过

AnySDKIAP.getInstance().getOrderId();

获取到anysdk生成的订单号。


public void IAPExternalCall(string msg)
{
	Debug.Log("IAPExternalCall(" + msg + ")");
	Dictionary<string, string> dic = AnySDKUtil.stringToDictionary(msg);
	int code = Convert.ToInt32(dic["code"]);
	string result = dic["msg"];

	switch (code)
	{
		case (int)PayResultCode.kPaySuccess://支付成功回调
			Debug.Log("支付成功回调");
			Debug.Log("支付result:" + result);
			onPaySuccess();
			break;
		case (int)PayResultCode.kPayFail://支付失败回调
			Debug.Log("支付失败回调");
			onPayFail();
			break;
		case (int)PayResultCode.kPayCancel://支付取消回调
			Debug.Log("支付取消回调");
			onPayCancel();
			break;
		case (int)PayResultCode.kPayNetworkError://支付超时回调
			onPayNetworkError();
			break;
		case (int)PayResultCode.kPayProductionInforIncomplete://支付信息不完整
			onPayInfoIncomplete();
			break;
		/**
		 * 新增加:正在进行中回调
		 * 支付过程中若SDK没有回调结果,就认为支付正在进行中
		 * 游戏开发商可让玩家去判断是否需要等待,若不等待则进行下一次的支付
		 */
		case (int)PayResultCode.kPayNowPaying:
			break;
		default:
			break;
	}
}

同时anySDK服务器会异步通知在anysdk打包工具里配置的支付回调地址

在支付回调处理里其实主要需要做的就是对订单进行验证

将anySDK传给支付回调的参数进行排序,在进行md5签名来验证,具体的做法在anysdk服务端接入的例子里有。这里不再详细描述,但注意在验证签名成功后记得回传ok或者OK给anysdk服务端,因为如果anysdk服务端没有收到ok的回复的话,它会间隔一小段时间再次发送请求给支付回调地址,这样就会浪费资源,增加服务器压力。

        response.setContentType( "text/plain;charset=utf-8");
	try{
		PrintWriter writer = response.getWriter();
		System.out.println("ok");
		writer.write( "ok" );
		writer.flush();
	} catch( Exception e ) {
		e.printStackTrace();
	}

比如我上面的在验证签名成功后回传给anysdk的处理,由于我本人用的是java做的web服务所以这里以java代码为例。

其实本身验证签名成功以后游戏服务器就可以发放相应的充值结果给客户端了,不过由于我们的支付验证服务器和游戏服务器是分开的,所以我中间还做了一步由支付验证服务器通知游戏服务器的过程。

以上就是支付接入的流程。


转载于:https://my.oschina.net/fantasyTianyu/blog/593922

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值