Преглед изворни кода

1.增加微信支付和支付宝支付

zhangmengjie пре 5 година
родитељ
комит
77c4544aa1

+ 13 - 0
android/app/src/main/AndroidManifest.xml

@@ -61,6 +61,19 @@
             android:name=".wxapi.WXPayEntryActivity"
             android:exported="true"
             android:label="@string/app_name" />
+        <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>
+
     </application>
 
 </manifest>

Разлика између датотеке није приказан због своје велике величине
+ 132 - 234
android/app/src/main/assets/index.android.bundle


BIN
android/app/src/main/res/drawable-mdpi/pages_images_ticket_buttonbg.png


BIN
android/app/src/main/res/drawable-xhdpi/pages_images_ticket_buttonbg.png


BIN
android/app/src/main/res/drawable-xxhdpi/pages_images_ticket_buttonbg.png


+ 46 - 80
pages/buy/buy.js

@@ -14,6 +14,7 @@ import {
 	DeviceEventEmitter,
 	ScrollView,
 	BackHandler,
+	ToastAndroid,
 	StatusBar,
 	Modal,
 	Animated,
@@ -31,40 +32,16 @@ export default class Buy extends BasePage {
 	state = {
 		shopData: [
 			{
-				appCode: '1006',
-				days: 365,
-				gmtCreated: 1520843765000,
-				gmtModified: 1541127465000,
-				id: 10018,
+				appCode: '',
+				days: 0,
+				gmtCreated: 0,
+				gmtModified: 0,
+				id: 0,
 				title: '',
-				originalPrice: '499',
-				payType: 3,
-				price: '199',
-				sort: 1
-			},
-			{
-				appCode: '1006',
-				days: 92,
-				gmtCreated: 1520843761000,
-				gmtModified: 1534387968000,
-				id: 10017,
-				title: '',
-				originalPrice: '199',
-				payType: 2,
-				price: '99',
-				sort: 2
-			},
-			{
-				appCode: '1006',
-				days: 31,
-				gmtCreated: 1520843757000,
-				gmtModified: 1537953249000,
-				id: 10016,
-				title: '',
-				originalPrice: '99',
+				originalPrice: '',
 				payType: 1,
-				price: '49',
-				sort: 3
+				price: '',
+				sort: 0
 			}
 		],
 		currentTapindex: 0,
@@ -140,14 +117,7 @@ export default class Buy extends BasePage {
 	};
 	componentWillMount() {
 		//获取订购数据信息
-		PayUtil.getMember().then((result) => {
-			console.log('====================================');
-			console.log('result', result);
-			console.log('====================================');
-			this.setState({
-				shopData: result.data
-			});
-		});
+		this.getMember();
 		BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
 	}
 	componentWillUnmount() {
@@ -161,6 +131,17 @@ export default class Buy extends BasePage {
 		}
 		return true;
 	};
+
+	async getMember() {
+		await PayUtil.getMember().then((result) => {
+			console.log('====================================');
+			console.log('result', result);
+			console.log('====================================');
+			this.setState({
+				shopData: result.data
+			});
+		});
+	}
 	choseTicket = () => {
 		this.toNextPage('Ticket', { choseTicketCallBack: this.choseTicketCallBack.bind(this) });
 	};
@@ -184,58 +165,43 @@ export default class Buy extends BasePage {
 			: parseInt(old_price) - parseInt(this.state.ticketPrice);
 	}
 	pay = () => {
+		let data = this.state.shopData[this.state.currentTapindex];
 		switch (this.state.payType) {
 			case 1:
-				let option = {
-					method: 'POST',
-					body: {
-						productCode: '',
-						type: '0',
-						preferentialIds: '',
-						useVoucher: this.state.useTicket
-					}
+				let params = {
+					productCode: data.id,
+					type: '0',
+					preferentialIds: '',
+					useVoucher: this.state.useTicket
 				};
-				PayUtil.payByWechat(option).then((result) => {
-					//微信支付
+
+				PayUtil.payByWechat(params).then((result) => {
 					wechat.pay(
-						result.partnerId,
-						result.prepayId,
-						result.nonceStr,
-						result.timeStamp,
-						result.package,
-						result.sign
+						result.data.partnerid,
+						result.data.prepayid,
+						result.data.noncestr,
+						result.data.timestamp,
+						result.data.package,
+						result.data.sign,
+						(result) => {
+							ToastAndroid.show('支付成功', ToastAndroid.SHORT);
+							// console.log('wechat result', result);
+						}
 					);
 				});
 
 				break;
 			case 2:
 				//阿里支付
-				let option_ali = {
-					method: 'POST',
-					body: {
-						productCode: '',
-						type: '0',
-						preferentialIds: '',
-						useVoucher: this.state.useTicket
-					}
+				let params_ali = {
+					productCode: data.id,
+					type: '0',
+					preferentialIds: '',
+					useVoucher: this.state.useTicket
 				};
 				//先请求后台给支付数据
-				PayUtil.payByAli(option_ali).then((result) => {
-					let data = 'partner=' + result.partner + '&';
-					'seller_id=' + result.seller_id + '&';
-					'out_trade_no=' + result.out_trade_no + '&';
-					'subject=' + result.subject + '&';
-					'body=' + result.body + '&';
-					'total_fee=' + result.total_fee + '&';
-					'notify_url=' + result.notify_url + '&';
-					'service=' + result.service + '&';
-					'payment_type=' + result.payment_type + '&';
-					'_input_charset=' + result._input_charset + '&';
-					'it_b_pay=' + result.it_b_pay + '&';
-					'sign=' + result.sign + '&';
-					'sign_type=' + result.sign_type;
-					//调用阿里支付
-					Alipay.pay(data).then(
+				PayUtil.payByAli(params_ali).then((result) => {
+					Alipay.pay(result.data.response).then(
 						function(data) {
 							//成功
 							console.log(data);

+ 26 - 4
pages/services/PayUtil.js

@@ -8,10 +8,32 @@ export default class PayUtil {
 		return request(APIConfig.getMember() + '?appCode=' + commonUitl.getAppCode(), { method: 'GET' });
 	}
 
-	static async payByAli(opts) {
-		return request(APIConfig.getPayUrl() + '/aliPay/pay', opts);
+	static async payByAli(params) {
+		return request(
+			APIConfig.getPayUrl() +
+				'/aliPay/pay?productCode=' +
+				params.productCode +
+				'&type=' +
+				params.type +
+				'&preferentialIds=' +
+				params.preferentialIds +
+				'&useVoucher=' +
+				params.useVoucher,
+			{ method: 'GET' }
+		);
 	}
-	static async payByWechat(opts) {
-		return request(APIConfig.getPayUrl() + '/wxPay/prePay', opts);
+	static async payByWechat(params) {
+		return request(
+			APIConfig.getPayUrl() +
+				'/wxPay/prePay?productCode=' +
+				params.productCode +
+				'&type=' +
+				params.type +
+				'&preferentialIds=' +
+				params.preferentialIds +
+				'&useVoucher=' +
+				params.useVoucher,
+			{ method: 'GET' }
+		);
 	}
 }

+ 1 - 1
pages/services/api.js

@@ -4,7 +4,7 @@ const url = {
 	user_url: 'http://ott80test-base.yifangjiaoyu.cn/mobile/user',
 	upload_img: 'http://ott80test-base.yifangjiaoyu.cn/file/upload',
 	getMember: 'http://ott80test-trade.yifangjiaoyu.cn/customer/order/member',
-	pay_url: 'http://ott80test-trade.yifangjiaoyu.cn/mobile/'
+	pay_url: 'http://ott80test-trade.yifangjiaoyu.cn/mobile'
 };
 
 export default class APIConfig {

+ 3 - 3
pages/utils/wechat.js

@@ -141,7 +141,7 @@ export default class wechat {
    * @param  {string} package            商家根据财付通文档填写的数据和签名
    * @param  {string} sign               商家根据微信开放平台文档对数据做的签名
    */
-	static pay(partnerId, prepayId, nonceStr, timeStamp, packages, sign) {
+	static pay(partnerId, prepayId, nonceStr, timeStamp, packages, sign, callback) {
 		WeChat.isWXAppInstalled().then((isInstalled) => {
 			if (isInstalled) {
 				WeChat.pay({
@@ -157,10 +157,10 @@ export default class wechat {
 						// if (requestJson.errCode == '0') {
 						// 	//回调成功处理
 						// }
-						return requestJson;
+						callback(requestJson);
 					})
 					.catch((err) => {
-						alert('支付失败');
+						alert('支付失败:' + err);
 					});
 			} else {
 				alert('请安装微信');