實用技術——支付_銀聯

  • 入網簽約

簽約地址

  • 導入支付需要的SDK相關文件

  • 配置App跳轉的白名單。

LSApplicationQueriesSchemes Array并加入uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3五個item

  • 添加URL Schemes

  • 配置代碼

    1. 支付控件調起
      支付信息都在<tn>中,后臺提供即可
      "00"代表接入生產環境(正式版本需要);
      "01"代表接入開發測試環境(測試版本需要);
      if (tn == nil || tn.length == 0) return;
      [[UPPaymentControl defaultControl] startPay:tn fromScheme:@"Demo" mode:@"00" viewController:self];
    • 支付回調處理
      - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
      [self handlePaymentResult:url];
      return YES;
      }

      - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
          [self handlePaymentResult:url];
          return YES;
      }
      - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{
          [self handlePaymentResult:url];
          return YES;
      }
      - (void)handlePaymentResult:(NSURL *)url{
          [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) {
          //結果code為成功時,先校驗簽名,校驗成功后做后續處理
          if([code isEqualToString:@"success"]) {
          //判斷簽名數據是否存在
          if(data == nil){
              //如果沒有簽名數據,建議商戶app后臺查詢交易結果
              return;
          }
          //數據從NSDictionary轉換為NSString
          NSData *signData = [NSJSONSerialization dataWithJSONObject:data options:0 error:nil];
          NSString *sign = [[NSString alloc] initWithData:signData encoding:NSUTF8StringEncoding];
          //驗簽證書同后臺驗簽證書
          //此處的verify,商戶需送去商戶后臺做驗簽
          if([self verify:sign]) {
                //支付成功且驗簽成功,展示支付成功提示
            }else {
                //驗簽失敗,交易結果數據被篡改,商戶app后臺查詢交易結果
            }
            }else if([code isEqualToString:@"fail"]) {
            //交易失敗
            }else if([code isEqualToString:@"cancel"]) {
            //交易取消
            }
          }];
      }
      
      -(BOOL) verify:(NSString *) resultStr {
          //驗簽證書同后臺驗簽證書
          //此處的verify,商戶需送去商戶后臺做驗簽
          return NO;
      }
      
  • 注意事項:

    1. 支付金額必須大于1分錢,否則會報錯
    • 如果出現@“網絡錯誤,請重試”提示
      請確認是否有網絡,以及是否進行過HTTP請求設置


    • 出現@“-[__NSCFString
      newSizeWithFont:forWidth:lineBreakMode:]: unrecognized selector sent to
      instance 0x7fd99bfa3480”調用支付控件崩潰


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 開發前的準備工作 SDK說明 接口說明 1、支付接口 - (BOOL)startPay:(NSString*)tn...
    Detailscool閱讀 3,457評論 5 50
  • 這是開頭語前不久做了一個項目,涉及到支付寶和銀聯支付,支付寶和銀聯都是業界的老大哥,文檔、SDK都是很屌,屌的找不...
    Mr丶炎閱讀 565評論 0 2
  • 項目最近需要集成銀聯,在網上搜了一下發現都并不是最新版的銀聯集成教程,自己摸索了一下,總結寫了下來。 附上3.3....
    嗜糖63閱讀 655評論 2 5
  • 項目最近需要集成銀聯,在網上搜了一下發現都并不是最新版的銀聯集成教程,自己摸索了一下,總結寫了下來。附上3.3.0...
    麥兜兜買兜兜閱讀 412評論 2 0
  • 2010年,美國空軍學院做了一項研究,想知道為什么有些學員經歷了四年的軍校生活,體型變好了,而有些學員的體型沒...
    認真斷舍離閱讀 969評論 0 0