어떻게 안 드 로 이 드 앱 에서 알 리 페 이와 위 챗 결제 기능 을 통합 합 니까?
7931 단어 집성위 챗 페 이 먼 트알 리 페 이
본 고 는 안 드 로 이 드 앱 에 알 리 페 이와 위 챗 결제 기능 을 통합 하 는 방법 을 소개 한다.글 에서 실 현 될 절 차 는 한 걸음 한 걸음 상세 하 게 소개 되 고 똑 같이 이 문 제 를 겪 은 친구 들 에 게 좋 은 참고 가 될 것 이 라 고 믿는다.다음은 더 이상 말 하지 않 겠 다.상세 한 소 개 를 살 펴 보 자.
통합 알 리 페 이 지급
지금 App 에 통합 알 리 페 이 가 이렇게 간단 할 줄 은 몰 랐 습 니 다.저 는 오랫동안 괴 롭 혔 습 니 다.
자,시작 합 니 다.알 리 페 이의 복잡 한 신청 같은 일 을 완성 했다 고 가정 하고 개발 에 들 어 갔습니다.
우선 공식 데모 다운로드:
앱 결제 클 라 이언 트 데모&SDK 。
개발 자원 가 져 오기
압축 을 풀 고 안에 있 는 jar 가방 을 꺼 내 서 프로젝트 의 lib 디 렉 터 리 에 넣 으 세 요.그림 과 같 습 니 다.
그리고 프로젝트 에 들 어 가 는"Project Structure"는 app module 에서"File dependency"를 선택 하여 libs 디 렉 터 리 에 있 는 alipaySDK-xxxxxx.jar 를 가 져 오 거나 app module 에 있 는 build.gradle 에서 수 동 으로 의존 도 를 추가 합 니 다.다음 코드 는 다음 과 같 습 니 다.
......
compile files('libs/alipaySdk-20170725.jar')
......
Android Manifest 파일 수정복사 해서 넣 으 면 돼 요.
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<activity
android:name="com.alipay.sdk.app.H5AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
성명 권한
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
자,준비 작업 은 거의 끝 났 습 니 다.지불 인터페이스 호출
여기 데모 참고 해 주세요.
결제 패키지 의 Demo 는 로 컬 암호 화 방식 을 주 고 이런 방법 을 추천 하지 않 기 때문에 우 리 는 그 중의 일부 코드 만 사용 하면 된다.
우선,PayResult.자바 같은 종 류 를 프로젝트 에 복사 합 니 다.코드 는 다음 과 같 습 니 다:
public class PayResult {
private String resultStatus;
private String result;
private String memo;
public PayResult(Map<String, String> rawResult) {
if (rawResult == null) {
return;
}
for (String key : rawResult.keySet()) {
if (TextUtils.equals(key, "resultStatus")) {
resultStatus = rawResult.get(key);
} else if (TextUtils.equals(key, "result")) {
result = rawResult.get(key);
} else if (TextUtils.equals(key, "memo")) {
memo = rawResult.get(key);
}
}
}
@Override
public String toString() {
return "resultStatus={" + resultStatus + "};memo={" + memo
+ "};result={" + result + "}";
}
/**
* @return the resultStatus
*/
public String getResultStatus() {
return resultStatus;
}
/**
* @return the memo
*/
public String getMemo() {
return memo;
}
/**
* @return the result
*/
public String getResult() {
return result;
}
}
그리고 지불 인 터 페 이 스 를 바 꿉 니 다.PayTask 대상 은 주로 업 체 에 주문 지불,조회 기능 을 제공 하고 현재 개발 패키지 버 전 번 호 를 얻 습 니 다.PayTask 결제 대상 호출 결제 가 져 오기(결제 행 위 는 독립 된 비 ui 스 레 드 에서 실행 해 야 합 니 다),
private static final int SDK_PAY_FLAG = 1;
//
final String orderInfo = info;
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(PayDemoActivity.this);
Map<String, String> result = alipay.payV2(orderInfo, true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
Thread payThread = new Thread(payRunnable);
payThread.start();
orderinfo 이 변 수 를 주의 하 십시오.이 값 은 배경 에 요청 한 값 입 니 다.여기 서 주의해 야 할 것 은 쓸 때 잘 보 세 요앱 결제 요청 파라미터 설명이 문 서 를 잘 보 세 요.
그리고 지불 결과 의 획득 과 처리.
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
@SuppressWarnings("unused")
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
@SuppressWarnings("unchecked")
PayResult payResult = new PayResult((Map<String, String>) msg.obj);
/**
, 。 , 。
*/
String resultInfo = payResult.getResult();//
String resultStatus = payResult.getResultStatus();
// resultStatus 9000
if (TextUtils.equals(resultStatus, "9000")) {
// , 。
Toast.makeText(PayDemoActivity.this, " ", Toast.LENGTH_SHORT).show();
} else {
// , 。
Toast.makeText(PayDemoActivity.this, " ", Toast.LENGTH_SHORT).show();
}
break;
}
default:
break;
}
};
};
그리고 됐어.끝나다
통합 위 챗 결제
위 챗 결 제 는 그래도 하기 쉽다.바로 먼저 등록 해 야 할 등록 이다.신청 해 야 할 신청 은 본 고의 중점 이 아니다.
위 챗 에 결제 리 셋 문제 가 있 기 때문에 제 방법 은 프로젝트 의 x.x.x.wxapi 패키지 경로 에서 WXPayEntry Activity 류 를 실현 하 는 것 입 니 다.(패키지 이름 이나 클래스 이름 은 반드시 일치 해 야 합 니 다.그렇지 않 으 면 리 셋 할 수 없습니다.)코드 는 다음 과 같 습 니 다:
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{
private static final String TAG = "WXPayEntryActivity";
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pay_result);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
api.handleIntent(getIntent(), this);
/*
* ,
* , 。
**/
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
}
@Override
public void onResp(BaseResp resp) {
Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);
switch(resp.errCode){
case 0:
// ,
break;
case -1:
// : 、 APPID、 APPID 、 APPID 、 。
break;
case -2:
// . 。 : , , APP。
break;
default:
break
}
}
}
후기알 리 페 이 결제 에 접속 한 것 은 이번 이 처음 이 었 다.처음에는 한 라 이브 러 리 를 참조 해 포장 을 했 는데 괜 한 행동 을 한 것 같 았 고 성공 하지 못 했 으 며 백 스테이지 인 의 량 과 마그네슘 을 뜯 어 내 는 느 린 양귀비 데 모 를 만 들 었 다.
참고:
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
입문 학습 노트 집성(7)-dp,div,dup미친 여름방학 학습의 모음집 입문 학습노트(7)-dp,div,dup bp: 기본 단락 주소가 ss인 것을 제외하고는 bx와 같습니다. 예를 들어 [bx+bp]는 byte ptr 표시 바이트 이렇게 하면 레지스터는 데...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.