第一步:截图中的红色框,在这个地址https://open.unionpay.com/ajweb/help/file/techFile?productId=3 下载下来的手机支付控件里面的东西,把它们拉进你们的libs和assets里面。
第二步:配置文件中,把银联需要的环境配置好,记得加上链接网络,我这里因为在其他地方用到了,这里就没写上去
<!-- 银联支付相关配置 --> <uses-library android:name="org.simalliance.openmobileapi" android:required="false" /> <activity android:name="com.unionpay.uppay.PayActivity" android:configChanges="orientation|keyboardHidden" android:excludeFromRecents="true" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize" /> <activity android:name="com.unionpay.UPPayWapActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc.hce" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="org.simalliance.openmobileapi.SMARTCARD" />
第三步:调用这个方法 ,里面的数字是tn,是银联开发提供的,具体可以看,下载的开发包里面的《开发联调步骤向导》里面有说到,我是直接把它拿出来,赋值到我的方法里面而已,到时候开发时,把这个tn换成自己公司后台生成的21位数的tn就可以了。
btn_goumai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { payByUnionPay("790660476908195552701"); } /** * 银联支付 * @param tn */ public void payByUnionPay(String tn) { if (!UPPayAssistEx.checkInstalled(getActivity())) { // 需要重新安装控件 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("提示"); builder.setMessage("完成购买需要安装银联支付控件,是否安装?"); builder.setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { UPPayAssistEx.installUPPayPlugin(getActivity()); dialog.dismiss(); } }); builder.setPositiveButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } else { doStartUnionPayPlugin(getActivity(), tn); } } /** * 启动支付界面 */ public void doStartUnionPayPlugin(Activity activity, String tn) { // “00” – 银联正式环境 // “01” – 银联测试环境,该环境中不发生真实交易 String serverMode = "01"; UPPayAssistEx.startPay(activity, null, null, tn, serverMode); } });
最后结束了,这样就可以成功调用银联了,《开发联调步骤向导》里面有测试的账号,模拟买单,可以去看一下,然后自己尝试支付,不需要钱的。如果有什么不对的,希望各位指点一下,因为我也不太懂。。。