<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## APP端開發步驟 > **Android開發要點說明** 1、AndroidStudio集成之前準備工作 (1).建業支付收銀臺包括了支付寶支付,銀聯云閃付和微信支付集成,如果項目已有微信支付寶銀聯云閃付,請先刪除微信支付寶銀聯云閃付集成 (2)建業支付收銀臺部分代碼所用koltin,所以項目需要支持kotlin,從Android Studio 3.0開始,將直接集成Kotlin而無需安裝任何的插件。只需要在整個項目的build.gradle中對應位置添加(如下圖): ~~~ ext.kotlin_version = '1.3.21' ~~~ ~~~ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" ~~~ ![](https://box.kancloud.cn/2ebf9f162e3df76f59a238548d19ecee_820x553.png) 在主module中的build.gradle中對應位置添加(如下圖): ~~~ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' ~~~ ~~~ implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" ~~~ ![](https://box.kancloud.cn/897270b0e9c959dd2a3052e4e336328d_940x844.png) 2、AndroidStudio集成 ![](https://img.kancloud.cn/b8/5b/b85bbff1413d65e585f819d8fc78b2ae_283x196.jpg) 如上圖在app下的libs文件夾下添加libammsdk.jar,UPPayAssistEx.jar,UPPayPluginExPro.jar,wftsdk5.0.jar 和創建一個文件夾soon并把alipaySdk.aar和 pay-zhizun.aar放入其中 在build.gradle中添加引用 : ~~~ implementation fileTree(include: ['*.aar'], dir: 'libs/soon') implementation files('libs/wftsdk5.0.jar') implementation files('libs/UPPayAssistEx.jar') implementation files('libs/UPPayPluginExPro.jar') implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' ~~~ 2、代碼初始化 在Application 類OnCreate()中調用 PayCashier.builder() .setAgainOrderClassPath("收銀臺SDK自帶的支付失敗界面顯示訂單已經支付完成,點擊重新下單按鈕跳轉界面路徑-------選填") .setAppPackageName("App包名 ------必填") .setFailureClassPath("收銀臺SDK自帶的支付失敗界面點擊放棄支付按鈕跳轉界面路徑-------選填") .setForgetPwdClassPath("收銀臺SDK選擇建業體系內支付方式(通寶,通寶+,余額)點擊忘記密碼按鈕跳轉界面路徑 -----必填") .setSuccessClassPath("收銀臺SDK自帶的支付成功界面點擊完成按鈕跳轉界面路徑-------選填") .setCustomFailureClassPath("自定義支付失敗界面路徑------選填") .setCustomSuccessClassPath("自定義支付成功界面路徑------選填") .setNoRealNameAuthClassPath(“實名認證界面路徑”") .setNoSetPwdClassPath(“設置建業體系內支付密碼界面路徑”") .initPay(this) 并在AndroidManifest.xml中添加 3、 微信支付成功回調添加注意事項 在你的包名相應目錄下新建一個wxapi目錄,并在該 wxapi 目錄下新增一個WXPayEntryActivity 類,該類繼承自 WxPayActivity(建議直接復制demo里的WXPayEntryActivity和manifest 文件該類對應的代碼) (假設應用程序的包名為 cn.swiftpass.wxpay,則新添加的類 cn.swiftpass.wxpay.wxapi.WXPayEntryActivity) ,并在 manifest 文件里面加上 exported 屬性,設置為 true,launchMode屬性,設置為singleInstance,theme屬性,設置為@style/MyTranslucentTheme ![](https://box.kancloud.cn/f8338fd4b600aa38d19f41ded78b648e_641x467.png) 4、 微信小程序支付成功回調添加注意事項 在你的包名相應目錄下新建一個wxapi目錄,并在該 wxapi 目錄下新增一個WXEntryActivity 類,該類繼承自 WxPayActivity(建議直接復制demo里的WXPayEntryActivity和manifest 文件該類對應的代碼) (假設應用程序的包名為 cn.swiftpass.wxpay,則新添加的類 cn.swiftpass.wxpay.wxapi.WXEntryActivity) ,并在 manifest 文件里面加上 exported 屬性,設置為 true,launchMode屬性,設置為singleInstance,theme屬性,設置為@style/MyTranslucentTheme ![](https://img.kancloud.cn/bd/55/bd55fb87634d8563677a6e25bf88394c_891x414.jpg) 5、添加用到的一些功能的集成: ~~~ implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.google.code.gson:gson:2.2.4' def work_version = "1.0.1" implementation "android.arch.work:work-runtime:$work_version" implementation 'com.android.support:animated-vector-drawable:28.0.0' ~~~ 6、混淆配置 -dontwarn com.unionpay.** -keep class com.unionpay.** {*;} -keep class org.simalliance.openmobileapi.** {*;} -dontwarn com.switfpass.pay.** -keep class com.switfpass.pay.** { *;} -dontwarn com.tencent.** -keep class com.tencent.** { *;} ## **一、iOS 支付SDK集成流程** ## 1. 導入支付構件情況說明 ## 1.1導入微信、支付寶、銀聯SDK 微信 按照微信支付文檔導入 添加各種依賴庫文件 支付寶 按照支付寶文檔導入 添加各種依賴庫文件 銀聯 按照銀聯文檔導入 添加各種依賴庫文件 ## 1.2導入收銀臺SDK和bundle文件 把CasierSDK.framework和CasierSDK.bundle拖入工程 并選擇 PROJECR/TARGET -> Build Settings -> Allow non-modular includes in Framework Modules -> YES ![](https://img.kancloud.cn/35/b3/35b3c4a84a4c0e31784175d3ac4cb67b_1240x219.png) ## 1.3需要的第三方 ## 1.3.1 去官網下載微信、支付寶、銀聯的SDK,并添加進工程 ## 1.3.2 pod文件中添加如下文件 執行pod install ``` pod 'AFNetworking' pod 'MJExtension' pod 'SDWebImage' pod 'MBProgressHUD' pod 'IQKeyboardManager' pod 'FDFullscreenPopGesture' pod 'YYText' pod 'Masonry' pod 'SocketRocket' **注意:碼付SDK需要使用到的長連接庫** ``` ## 2.具體使用情況 ## 2.1導入頭文件 ``` #import <CashierSDK/CashierSDK.h> ``` ## 2.2AppDelgate設置 ``` - (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSLog(@"%@", url.host); if ([url.host isEqualToString:@"pay"]) { //微信支付 [WXApi handleOpenURL:url delegate:[CashierManager shareManager]]; }else if ([url.host isEqualToString:@"platformId=wechat"]){ //微信小程序支付回調 [WXApi handleOpenURL:url delegate:[CashierManager shareManager]]; }else if ([url.host isEqualToString:@"safepay"]) { //支付寶支付 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { [[CashierManager shareManager] aliPayCompleteWithResultDic:resultDic]; }]; }else if ([url.host isEqualToString:@"uppayresult"] || [url.host isEqualToString:@"paydemo"]) { //銀聯支付 [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) { [[CashierManager shareManager] unionPayCompleteWithCode:code data:data]; }]; } return YES; } // NOTE: 9.0以后使用新API接口 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options { NSLog(@"%@", url.host); if ([url.host isEqualToString:@"pay"]) { //微信支付 [WXApi handleOpenURL:url delegate:[CashierManager shareManager]]; }else if ([url.host isEqualToString:@"platformId=wechat"]){ //微信小程序支付回調 [WXApi handleOpenURL:url delegate:[CashierManager shareManager]]; }else if ([url.host isEqualToString:@"safepay"]) { //支付寶支付 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { [[CashierManager shareManager] aliPayCompleteWithResultDic:resultDic]; }]; }else if ([url.host isEqualToString:@"uppayresult"] || [url.host isEqualToString:@"paydemo"]) { //銀聯支付 [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) { [[CashierManager shareManager] unionPayCompleteWithCode:code data:data]; }]; } return YES; } #pragma mark 處理App從微信、支付寶、云閃付App 通過雙擊Home鍵直接返回到收銀臺時或者通過點擊微信、支付寶、云閃付App頁面頂部左上角的系統按鈕返回App時,有可能會引起訂單支付異常的情況處理。 - (void)applicationDidBecomeActive:(UIApplication *)application { //當App由running狀態切換到inactive狀態時,判斷backNumber的值, if([CashierManager shareManager].backNumber==3){ //直接從微信支付寶銀聯點左上角返回 [[NSNotificationCenter defaultCenter] postNotificationName:kCashier_BackFromWXPay_Alipay_UnionPayObject object:nil]; } } ``` ## 2.3初始化收銀臺時的相關配置(跳轉的界面、是否打開日志上傳) ``` /** 配置收銀臺(相關跳轉界面,日志上傳) @param customSuccessVCState 是否自定義支付成功控制器,當customSuccessVCState=NO,默認跳轉SDK自帶的支付成功頁面, customSuccessVCState=YES時,必須實現(CashierManagerDelegate)代理方法 -(void)cashierManageCustomPaySuccessVCWithOrderInfo:(NSDictionary *)orderInfo result:(NSDictionary *)result payType:(NSString *)payType; @param customFailVCState 是否自定義支付失敗控制器, 當customFailVCState=NO,支付失敗時默認跳轉SDK自帶的支付失敗頁面 當customFailVCState=YES,必須實現(CashierManagerDelegate)代理方法 -(void)cashierManageCustomPayFailureVCWithOrderInfo:(NSDictionary *)orderInfo failureReason:(NSDictionary *)failureReason payType:(NSString *)payType; @param fixPayPswClass 收銀臺點擊“忘記密碼”跳轉到的控制器 不可為空 類型為Class @param authenticationClass 收銀臺實名認證控制器類對象 類型為Class @param payPwdClass 收銀臺初始話設置密碼控制器類對象 類型為Class @param uploadLog 是否上傳日志 @param storeId 商戶id @param orderInfo:商品訂單信息 */ -(void)setIsCustomSuccessVCState:(BOOL)customSuccessVCState setCustomFailVCState:(BOOL)customFailVCState fixPayPswVCClass:(Class)fixPayPswClass realNameAuthenticationVCClass:(nonnull Class)authenticationClass setPayPwdVCClass:(nonnull Class)payPwdClass uploadLog:(BOOL)uploadLog storeId:(nonnull NSString *)storeId; 示例: //第一步:收銀臺相關配置(跳轉的界面、是否打開日志上傳) [[CashierManager shareManager] setIsCustomSuccessVCState:YES setCustomFailVCState:YES fixPayPswVCClass:[FixPswViewController class] realNameAuthenticationVCClass:[AuthenticationViewController class] setPayPwdVCClass:[FirstSetPayPwdController class] uploadLog:YES storeId:storeId]; /*第二步:配置收銀臺SDK 實名認證,設置支付密碼,修改支付密碼按鈕跳轉方式。 目前支持push跳轉和Present跳轉: @param kPresentMode 是present跳轉模式 @param kPushMode 是push跳轉模式 ********************************************* 這一步是可選的(SDK內部配置配置了跳轉方式 修改支付密碼和設置支付密碼默認是push跳轉, 實名認證默認是present跳轉) */ [[CashierManager shareManager] configCashierVCJumpModeWithfixPayPwd:kPresentMode withAuthentication:kPresentMode withSetPayPwd:kPushMode]; //第三步:收銀臺訂單信息初始化及代理的設置 [[CashierManager shareManager] initCashierVCWithOrderInfo:orderInfo delegate:self]; 注意:如果要想自己配置跳轉方式生效,配置方式必須在初始化收銀臺訂單信息函數之前調用,否則你配置的跳轉方式不會生效。 ``` ## 2.4在初始化收銀臺之后,如果使用微信支付開發者必須向微信終端注冊第三方應用 ``` 目前SDK 支持三種微信AppId配置方法如下: @param /* 枚舉類型參數含義 typedef enum{ //使用SDK內部默認的微信AppId kCashier_DefaultWXAppId=0, //使用傳入微信AppId kCashier_ConfigureWXAppId, //使用從接口獲取的微信 AppId kCashier_APiObtainWXAppId }kCashier_WXAppId_Source; */ // 1.第一種使用SDK默認配置微信AppId [CashierManager shareManager].wxAppId_Source=kCashier_DefaultWXAppId; // 2.第二種使用用戶傳入的微信AppId [CashierManager shareManager].wxAppId_Source=kCashier_ConfigureWXAppId; [CashierManager shareManager].cashier_configure_wxAppId=@"wx661b798d47413d09"; // 3.第三種從接口獲取微信AppId [CashierManager shareManager].wxAppId_Source=kCashier_APiObtainWXAppId; 上面三種方法選用一種方法即可。 **注意:不管上面的那種配置方法用戶必須在 URL Schemes 中進行配置。 ** ``` ## 2.5 初始化碼付款時相關的配置 (跳轉的界面、是否打開日志上傳) 第一步:初始化碼付信息 ``` 設置碼付配置數據 @param fixPayPwdClass 收銀臺點擊“忘記密碼”跳轉到的控制器 不可為空 類型為Class @param authenticationClass 收銀臺跳轉到實名認證控制器 不可為空 類型為Class @param payPwdClass 收銀臺跳轉到設置支付密碼控制器 不可為空 類型為Class ``` -(void)setCashierCodePaymentWithfixPayPwdVCClass:(Class)fixPayPwdClass realNameAuthenticationVCClass:(Class)authenticationClass setPayPwdVCClass:(Class)payPwdClass uploadLog:(BOOL)uploadLog storeId:(nonnull NSString *)storeId; 第二步 配置碼付SDK中設置支付密碼,實名認證,修改支付密碼視圖的跳轉方式(可選) ```目前支持push跳轉和Present跳轉: @param kPresentMode 是present跳轉模式 @param kPushMode 是push跳轉模式 這一步是可選的(SDK內部配置配置了跳轉方式 修改支付密碼和設置支付密碼默認是push跳轉, 實名認證默認是present跳轉) ``` [[CashierManager shareManager] configCodePaymentJumpModeWithfixPayPwd:kPushMode withAuthentication:kPresentMode withSetPayPwd:kPushMode]; 第三步:初始化碼付訂單信息 ``` @param orderInfo 訂單信息字典 字典里的字段 | field name | data type | most | description | customid string yes 會員編號 mainIp string yes 收銀臺服務器域名 key string yes 加密密鑰 ``` -(void)initCashierCodePaymentInfo:(NSDictionary *)orderInfo delegate:(id)delegate; 注意:如果要想自己配置跳轉方式生效,配置方式必須在初始化碼付訂單信息函數之前調用,否則你配置的跳轉方式不會生效。 ## 3.注意事項 ## 3.1.1微信、支付寶、銀聯相關配置(該配置不支持小程序支付) *商戶在微信開發平臺申請開發APP應用后,微信開放平臺會生成APP的唯一標識APPID。在Xcode中打開項目,設置項目屬性重的URL Schemes 為子商戶的APPID。 *支付寶需要配置支付寶Url Schemes,使用Bundle Identifier。 *銀聯需要配置銀聯Url Schemes,使用Bundle Identifier。 如圖標紅位置所示: ![](https://img.kancloud.cn/03/6a/036a17a555d27c0ae60fd01718abd55a_1240x859.png) *微信支付在付款時需要啟動微信客戶端,SDK在構件內調用了 canOpne方法,請在plist文件中,增加微信相應app的白名單。 *支付寶支付在付款時需要啟動支付寶客戶端,SDK在構件內調用了 canOpne方法,請在plist文件中,增加微信相應app的白名單。 *銀聯支付在付款時需要啟動銀聯客戶端,SDK在構件內調用了 canOpne方法,請在plist文件中,增加銀聯相應app的白名單。 如圖所示: ![](https://img.kancloud.cn/a8/95/a895fedbd478ba9df2560272017c6c48_1240x862.png) ## 3.1.1微信、支付寶、銀聯、微信小程序配置相關配置(該配置支持微信小程序支付) *商戶在微信開發平臺申請開發APP應用后,微信開放平臺會生成APP的唯一標識APPID。在Xcode中打開項目,設置項目屬性重的URL Schemes 為子商戶的APPID。 *支付寶需要配置支付寶Url Schemes,使用Bundle Identifier。 *銀聯需要配置銀聯Url Schemes,使用Bundle Identifier。 *微信小程序配置 Url Schemes ,使用App應用在微信開放平臺下申請的AppId(該AppId必須已經關聯過小程序)。 如圖標紅位置所示: ![](https://img.kancloud.cn/4f/14/4f1482a534ade400694b00cc584cef85_2684x2204.png) ## 3.2其它 ## 3.2.1 向微信終端程序注冊第三方應用: ``` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [WXApi registerApp:@"wx2a5538052969956e"]; } ``` ## 3.2.2 使用銀聯SDK需將Appdelegate.m改為Appdelegate.mm (由于支付控件使用到了C、C++和OC混編的情況,所以項目工程引入UPPaymentControl.h頭文件以后可能會出現鏈接錯誤) ## 3.2.3 打包上傳AppStore時 將支付SDK導入項目后,務必將Enable Bitcode設置為NO,否則上傳會失敗。 設置步驟:選擇工程targets——>build settings ->搜索bitcode->設置Enable Bitcode為NO 截圖: ![](https://img.kancloud.cn/85/36/853637a2f31673cf57551ea484a997cf_2234x442.png) demo下載地址:[https://github.com/jingdongli/zzpaysdk](https://github.com/jingdongli/zzpaysdk) ## WEB端開發步驟 1、參數配置 2、代碼初始化
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看