/* 参数: orderInfo是string类型的订单信息; Callback是应用接收支付结果的异步回调委托; Protocol是前述步骤获取到的protocol name,在此处传入; 返回值:无 备注: orderInfo参数传入的值如果和上次调用时相同的话,就可以实现被中断的支付场景恢复的功能;如果不相同,就被认为是一次新的订单。 如果有支付结果,一定可以从callback中获取到;如果没有获取或者没有等到支付结果,您可以传入相同的orderInfo以恢复上次支付场景; 建议: 建议用户调用时保存orderInfo,便于场景恢复。 */ public static void AlixpayAsync(string orderInfo, AlipayCallback callback,string protocol) { AlixPay curInstance = AlixPay.getInstance(); curInstance.ProtocolName = protocol; //启动alipay curInstance.payStart(orderInfo, null, callback); return ; }
/* 参数: protocolname是调用者应用(外部商户应用)的protocolname,如何获取protocolname请参考章节3.1.1.2 Callback是应用接收支付结果的异步回调委托; 返回值:无。 功能: 如果快捷支付存在,就会调起快捷支付提示用户:支付模块正常,5秒后返回(用户也可以直接点击“返回”)。 5秒(或者点击“返回”)会自动返回到调用程序。 备注: 如果callback中接收到这样的信息:“resultStatus={7100};memo={当前系统已经安装移动快捷支付应用。}”表明已经安装好移动快捷支付应用。 */ public async static void TestFastPayExist(string protocolname, AlipayCallback callback) { string uristr = "alifastpaywin8:?protocol="; mProtCallback = callback; uristr += protocolname; //protocolname是用于通知消息的。protocolname是商户传进来的。 var uri = new Uri(uristr);//创建uri。 var options = new Windows.System.LauncherOptions(); options.DisplayApplicationPicker = false; //为true时,强制显示选择列表。 options.PreferredApplicationDisplayName = "移动快捷支付"; //没有找到应用时,会弹出displayName options.PreferredApplicationPackageFamilyName = "424203F4.324177B885247_8asrdwhv739xj"; //这是移动快捷支付的packageFamilyName await Windows.System.Launcher.LaunchUriAsync(uri, options); return ; }
private void payStart(string order,string ctiCode,AlipayCallback callback) { mCurOrder = order; mCallback = callback; if (null == ctiCode) { mCtiCode = getCtiCode(); } sdkDeinit(); sdkInit(); payTrigger(); }
private void onExitEx(String val) { if (null != mProtCallback) { mProtCallback(val); } mCallback = null; mProtCallback = null; mInstance = null; sdkDeinit(); }